/*eslint-disable block-scoped-var, id-length, no-control-regex, no-magic-numbers, no-prototype-builtins, no-redeclare, no-shadow, no-var, sort-vars*/
"use strict";

var $protobuf = require("protobufjs/minimal");

// Common aliases
var $Reader = $protobuf.Reader, $Writer = $protobuf.Writer, $util = $protobuf.util;

// Exported root namespace
var $root = $protobuf.roots["default"] || ($protobuf.roots["default"] = {});

$root.s2c_base = (function() {

    /**
     * Properties of a s2c_base.
     * @exports Is2c_base
     * @interface Is2c_base
     * @property {number|null} [code] s2c_base code
     * @property {string|null} [msg] s2c_base msg
     */

    /**
     * Constructs a new s2c_base.
     * @exports s2c_base
     * @classdesc Represents a s2c_base.
     * @implements Is2c_base
     * @constructor
     * @param {Is2c_base=} [properties] Properties to set
     */
    function s2c_base(properties) {
        if (properties)
            for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
                if (properties[keys[i]] != null)
                    this[keys[i]] = properties[keys[i]];
    }

    /**
     * s2c_base code.
     * @member {number} code
     * @memberof s2c_base
     * @instance
     */
    s2c_base.prototype.code = 0;

    /**
     * s2c_base msg.
     * @member {string} msg
     * @memberof s2c_base
     * @instance
     */
    s2c_base.prototype.msg = "";

    /**
     * Creates a new s2c_base instance using the specified properties.
     * @function create
     * @memberof s2c_base
     * @static
     * @param {Is2c_base=} [properties] Properties to set
     * @returns {s2c_base} s2c_base instance
     */
    s2c_base.create = function create(properties) {
        return new s2c_base(properties);
    };

    /**
     * Encodes the specified s2c_base message. Does not implicitly {@link s2c_base.verify|verify} messages.
     * @function encode
     * @memberof s2c_base
     * @static
     * @param {Is2c_base} message s2c_base message or plain object to encode
     * @param {$protobuf.Writer} [writer] Writer to encode to
     * @returns {$protobuf.Writer} Writer
     */
    s2c_base.encode = function encode(message, writer) {
        if (!writer)
            writer = $Writer.create();
        if (message.code != null && Object.hasOwnProperty.call(message, "code"))
            writer.uint32(/* id 1, wireType 0 =*/8).int32(message.code);
        if (message.msg != null && Object.hasOwnProperty.call(message, "msg"))
            writer.uint32(/* id 2, wireType 2 =*/18).string(message.msg);
        return writer;
    };

    /**
     * Encodes the specified s2c_base message, length delimited. Does not implicitly {@link s2c_base.verify|verify} messages.
     * @function encodeDelimited
     * @memberof s2c_base
     * @static
     * @param {Is2c_base} message s2c_base message or plain object to encode
     * @param {$protobuf.Writer} [writer] Writer to encode to
     * @returns {$protobuf.Writer} Writer
     */
    s2c_base.encodeDelimited = function encodeDelimited(message, writer) {
        return this.encode(message, writer).ldelim();
    };

    /**
     * Decodes a s2c_base message from the specified reader or buffer.
     * @function decode
     * @memberof s2c_base
     * @static
     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
     * @param {number} [length] Message length if known beforehand
     * @returns {s2c_base} s2c_base
     * @throws {Error} If the payload is not a reader or valid buffer
     * @throws {$protobuf.util.ProtocolError} If required fields are missing
     */
    s2c_base.decode = function decode(reader, length) {
        if (!(reader instanceof $Reader))
            reader = $Reader.create(reader);
        var end = length === undefined ? reader.len : reader.pos + length, message = new $root.s2c_base();
        while (reader.pos < end) {
            var tag = reader.uint32();
            switch (tag >>> 3) {
            case 1: {
                    message.code = reader.int32();
                    break;
                }
            case 2: {
                    message.msg = reader.string();
                    break;
                }
            default:
                reader.skipType(tag & 7);
                break;
            }
        }
        return message;
    };

    /**
     * Decodes a s2c_base message from the specified reader or buffer, length delimited.
     * @function decodeDelimited
     * @memberof s2c_base
     * @static
     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
     * @returns {s2c_base} s2c_base
     * @throws {Error} If the payload is not a reader or valid buffer
     * @throws {$protobuf.util.ProtocolError} If required fields are missing
     */
    s2c_base.decodeDelimited = function decodeDelimited(reader) {
        if (!(reader instanceof $Reader))
            reader = new $Reader(reader);
        return this.decode(reader, reader.uint32());
    };

    /**
     * Verifies a s2c_base message.
     * @function verify
     * @memberof s2c_base
     * @static
     * @param {Object.<string,*>} message Plain object to verify
     * @returns {string|null} `null` if valid, otherwise the reason why it is not
     */
    s2c_base.verify = function verify(message) {
        if (typeof message !== "object" || message === null)
            return "object expected";
        if (message.code != null && message.hasOwnProperty("code"))
            if (!$util.isInteger(message.code))
                return "code: integer expected";
        if (message.msg != null && message.hasOwnProperty("msg"))
            if (!$util.isString(message.msg))
                return "msg: string expected";
        return null;
    };

    /**
     * Creates a s2c_base message from a plain object. Also converts values to their respective internal types.
     * @function fromObject
     * @memberof s2c_base
     * @static
     * @param {Object.<string,*>} object Plain object
     * @returns {s2c_base} s2c_base
     */
    s2c_base.fromObject = function fromObject(object) {
        if (object instanceof $root.s2c_base)
            return object;
        var message = new $root.s2c_base();
        if (object.code != null)
            message.code = object.code | 0;
        if (object.msg != null)
            message.msg = String(object.msg);
        return message;
    };

    /**
     * Creates a plain object from a s2c_base message. Also converts values to other types if specified.
     * @function toObject
     * @memberof s2c_base
     * @static
     * @param {s2c_base} message s2c_base
     * @param {$protobuf.IConversionOptions} [options] Conversion options
     * @returns {Object.<string,*>} Plain object
     */
    s2c_base.toObject = function toObject(message, options) {
        if (!options)
            options = {};
        var object = {};
        if (options.defaults) {
            object.code = 0;
            object.msg = "";
        }
        if (message.code != null && message.hasOwnProperty("code"))
            object.code = message.code;
        if (message.msg != null && message.hasOwnProperty("msg"))
            object.msg = message.msg;
        return object;
    };

    /**
     * Converts this s2c_base to JSON.
     * @function toJSON
     * @memberof s2c_base
     * @instance
     * @returns {Object.<string,*>} JSON object
     */
    s2c_base.prototype.toJSON = function toJSON() {
        return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
    };

    /**
     * Gets the default type url for s2c_base
     * @function getTypeUrl
     * @memberof s2c_base
     * @static
     * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
     * @returns {string} The default type url
     */
    s2c_base.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
        if (typeUrlPrefix === undefined) {
            typeUrlPrefix = "type.googleapis.com";
        }
        return typeUrlPrefix + "/s2c_base";
    };

    return s2c_base;
})();

$root.c2s_GetResources = (function() {

    /**
     * Properties of a c2s_GetResources.
     * @exports Ic2s_GetResources
     * @interface Ic2s_GetResources
     */

    /**
     * Constructs a new c2s_GetResources.
     * @exports c2s_GetResources
     * @classdesc Represents a c2s_GetResources.
     * @implements Ic2s_GetResources
     * @constructor
     * @param {Ic2s_GetResources=} [properties] Properties to set
     */
    function c2s_GetResources(properties) {
        if (properties)
            for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
                if (properties[keys[i]] != null)
                    this[keys[i]] = properties[keys[i]];
    }

    /**
     * Creates a new c2s_GetResources instance using the specified properties.
     * @function create
     * @memberof c2s_GetResources
     * @static
     * @param {Ic2s_GetResources=} [properties] Properties to set
     * @returns {c2s_GetResources} c2s_GetResources instance
     */
    c2s_GetResources.create = function create(properties) {
        return new c2s_GetResources(properties);
    };

    /**
     * Encodes the specified c2s_GetResources message. Does not implicitly {@link c2s_GetResources.verify|verify} messages.
     * @function encode
     * @memberof c2s_GetResources
     * @static
     * @param {Ic2s_GetResources} message c2s_GetResources message or plain object to encode
     * @param {$protobuf.Writer} [writer] Writer to encode to
     * @returns {$protobuf.Writer} Writer
     */
    c2s_GetResources.encode = function encode(message, writer) {
        if (!writer)
            writer = $Writer.create();
        return writer;
    };

    /**
     * Encodes the specified c2s_GetResources message, length delimited. Does not implicitly {@link c2s_GetResources.verify|verify} messages.
     * @function encodeDelimited
     * @memberof c2s_GetResources
     * @static
     * @param {Ic2s_GetResources} message c2s_GetResources message or plain object to encode
     * @param {$protobuf.Writer} [writer] Writer to encode to
     * @returns {$protobuf.Writer} Writer
     */
    c2s_GetResources.encodeDelimited = function encodeDelimited(message, writer) {
        return this.encode(message, writer).ldelim();
    };

    /**
     * Decodes a c2s_GetResources message from the specified reader or buffer.
     * @function decode
     * @memberof c2s_GetResources
     * @static
     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
     * @param {number} [length] Message length if known beforehand
     * @returns {c2s_GetResources} c2s_GetResources
     * @throws {Error} If the payload is not a reader or valid buffer
     * @throws {$protobuf.util.ProtocolError} If required fields are missing
     */
    c2s_GetResources.decode = function decode(reader, length) {
        if (!(reader instanceof $Reader))
            reader = $Reader.create(reader);
        var end = length === undefined ? reader.len : reader.pos + length, message = new $root.c2s_GetResources();
        while (reader.pos < end) {
            var tag = reader.uint32();
            switch (tag >>> 3) {
            default:
                reader.skipType(tag & 7);
                break;
            }
        }
        return message;
    };

    /**
     * Decodes a c2s_GetResources message from the specified reader or buffer, length delimited.
     * @function decodeDelimited
     * @memberof c2s_GetResources
     * @static
     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
     * @returns {c2s_GetResources} c2s_GetResources
     * @throws {Error} If the payload is not a reader or valid buffer
     * @throws {$protobuf.util.ProtocolError} If required fields are missing
     */
    c2s_GetResources.decodeDelimited = function decodeDelimited(reader) {
        if (!(reader instanceof $Reader))
            reader = new $Reader(reader);
        return this.decode(reader, reader.uint32());
    };

    /**
     * Verifies a c2s_GetResources message.
     * @function verify
     * @memberof c2s_GetResources
     * @static
     * @param {Object.<string,*>} message Plain object to verify
     * @returns {string|null} `null` if valid, otherwise the reason why it is not
     */
    c2s_GetResources.verify = function verify(message) {
        if (typeof message !== "object" || message === null)
            return "object expected";
        return null;
    };

    /**
     * Creates a c2s_GetResources message from a plain object. Also converts values to their respective internal types.
     * @function fromObject
     * @memberof c2s_GetResources
     * @static
     * @param {Object.<string,*>} object Plain object
     * @returns {c2s_GetResources} c2s_GetResources
     */
    c2s_GetResources.fromObject = function fromObject(object) {
        if (object instanceof $root.c2s_GetResources)
            return object;
        return new $root.c2s_GetResources();
    };

    /**
     * Creates a plain object from a c2s_GetResources message. Also converts values to other types if specified.
     * @function toObject
     * @memberof c2s_GetResources
     * @static
     * @param {c2s_GetResources} message c2s_GetResources
     * @param {$protobuf.IConversionOptions} [options] Conversion options
     * @returns {Object.<string,*>} Plain object
     */
    c2s_GetResources.toObject = function toObject() {
        return {};
    };

    /**
     * Converts this c2s_GetResources to JSON.
     * @function toJSON
     * @memberof c2s_GetResources
     * @instance
     * @returns {Object.<string,*>} JSON object
     */
    c2s_GetResources.prototype.toJSON = function toJSON() {
        return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
    };

    /**
     * Gets the default type url for c2s_GetResources
     * @function getTypeUrl
     * @memberof c2s_GetResources
     * @static
     * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
     * @returns {string} The default type url
     */
    c2s_GetResources.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
        if (typeUrlPrefix === undefined) {
            typeUrlPrefix = "type.googleapis.com";
        }
        return typeUrlPrefix + "/c2s_GetResources";
    };

    return c2s_GetResources;
})();

$root.s2c_GetResources = (function() {

    /**
     * Properties of a s2c_GetResources.
     * @exports Is2c_GetResources
     * @interface Is2c_GetResources
     * @property {Is2c_base|null} [base] s2c_GetResources base
     * @property {number|null} [carrot] s2c_GetResources carrot
     * @property {number|null} [clover] s2c_GetResources clover
     * @property {number|null} [goldCarrot] s2c_GetResources goldCarrot
     * @property {number|null} [minCarrot] s2c_GetResources minCarrot
     */

    /**
     * Constructs a new s2c_GetResources.
     * @exports s2c_GetResources
     * @classdesc Represents a s2c_GetResources.
     * @implements Is2c_GetResources
     * @constructor
     * @param {Is2c_GetResources=} [properties] Properties to set
     */
    function s2c_GetResources(properties) {
        if (properties)
            for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
                if (properties[keys[i]] != null)
                    this[keys[i]] = properties[keys[i]];
    }

    /**
     * s2c_GetResources base.
     * @member {Is2c_base|null|undefined} base
     * @memberof s2c_GetResources
     * @instance
     */
    s2c_GetResources.prototype.base = null;

    /**
     * s2c_GetResources carrot.
     * @member {number} carrot
     * @memberof s2c_GetResources
     * @instance
     */
    s2c_GetResources.prototype.carrot = 0;

    /**
     * s2c_GetResources clover.
     * @member {number} clover
     * @memberof s2c_GetResources
     * @instance
     */
    s2c_GetResources.prototype.clover = 0;

    /**
     * s2c_GetResources goldCarrot.
     * @member {number} goldCarrot
     * @memberof s2c_GetResources
     * @instance
     */
    s2c_GetResources.prototype.goldCarrot = 0;

    /**
     * s2c_GetResources minCarrot.
     * @member {number} minCarrot
     * @memberof s2c_GetResources
     * @instance
     */
    s2c_GetResources.prototype.minCarrot = 0;

    /**
     * Creates a new s2c_GetResources instance using the specified properties.
     * @function create
     * @memberof s2c_GetResources
     * @static
     * @param {Is2c_GetResources=} [properties] Properties to set
     * @returns {s2c_GetResources} s2c_GetResources instance
     */
    s2c_GetResources.create = function create(properties) {
        return new s2c_GetResources(properties);
    };

    /**
     * Encodes the specified s2c_GetResources message. Does not implicitly {@link s2c_GetResources.verify|verify} messages.
     * @function encode
     * @memberof s2c_GetResources
     * @static
     * @param {Is2c_GetResources} message s2c_GetResources message or plain object to encode
     * @param {$protobuf.Writer} [writer] Writer to encode to
     * @returns {$protobuf.Writer} Writer
     */
    s2c_GetResources.encode = function encode(message, writer) {
        if (!writer)
            writer = $Writer.create();
        if (message.base != null && Object.hasOwnProperty.call(message, "base"))
            $root.s2c_base.encode(message.base, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();
        if (message.carrot != null && Object.hasOwnProperty.call(message, "carrot"))
            writer.uint32(/* id 2, wireType 0 =*/16).int32(message.carrot);
        if (message.clover != null && Object.hasOwnProperty.call(message, "clover"))
            writer.uint32(/* id 3, wireType 0 =*/24).int32(message.clover);
        if (message.goldCarrot != null && Object.hasOwnProperty.call(message, "goldCarrot"))
            writer.uint32(/* id 4, wireType 0 =*/32).int32(message.goldCarrot);
        if (message.minCarrot != null && Object.hasOwnProperty.call(message, "minCarrot"))
            writer.uint32(/* id 5, wireType 0 =*/40).int32(message.minCarrot);
        return writer;
    };

    /**
     * Encodes the specified s2c_GetResources message, length delimited. Does not implicitly {@link s2c_GetResources.verify|verify} messages.
     * @function encodeDelimited
     * @memberof s2c_GetResources
     * @static
     * @param {Is2c_GetResources} message s2c_GetResources message or plain object to encode
     * @param {$protobuf.Writer} [writer] Writer to encode to
     * @returns {$protobuf.Writer} Writer
     */
    s2c_GetResources.encodeDelimited = function encodeDelimited(message, writer) {
        return this.encode(message, writer).ldelim();
    };

    /**
     * Decodes a s2c_GetResources message from the specified reader or buffer.
     * @function decode
     * @memberof s2c_GetResources
     * @static
     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
     * @param {number} [length] Message length if known beforehand
     * @returns {s2c_GetResources} s2c_GetResources
     * @throws {Error} If the payload is not a reader or valid buffer
     * @throws {$protobuf.util.ProtocolError} If required fields are missing
     */
    s2c_GetResources.decode = function decode(reader, length) {
        if (!(reader instanceof $Reader))
            reader = $Reader.create(reader);
        var end = length === undefined ? reader.len : reader.pos + length, message = new $root.s2c_GetResources();
        while (reader.pos < end) {
            var tag = reader.uint32();
            switch (tag >>> 3) {
            case 1: {
                    message.base = $root.s2c_base.decode(reader, reader.uint32());
                    break;
                }
            case 2: {
                    message.carrot = reader.int32();
                    break;
                }
            case 3: {
                    message.clover = reader.int32();
                    break;
                }
            case 4: {
                    message.goldCarrot = reader.int32();
                    break;
                }
            case 5: {
                    message.minCarrot = reader.int32();
                    break;
                }
            default:
                reader.skipType(tag & 7);
                break;
            }
        }
        return message;
    };

    /**
     * Decodes a s2c_GetResources message from the specified reader or buffer, length delimited.
     * @function decodeDelimited
     * @memberof s2c_GetResources
     * @static
     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
     * @returns {s2c_GetResources} s2c_GetResources
     * @throws {Error} If the payload is not a reader or valid buffer
     * @throws {$protobuf.util.ProtocolError} If required fields are missing
     */
    s2c_GetResources.decodeDelimited = function decodeDelimited(reader) {
        if (!(reader instanceof $Reader))
            reader = new $Reader(reader);
        return this.decode(reader, reader.uint32());
    };

    /**
     * Verifies a s2c_GetResources message.
     * @function verify
     * @memberof s2c_GetResources
     * @static
     * @param {Object.<string,*>} message Plain object to verify
     * @returns {string|null} `null` if valid, otherwise the reason why it is not
     */
    s2c_GetResources.verify = function verify(message) {
        if (typeof message !== "object" || message === null)
            return "object expected";
        if (message.base != null && message.hasOwnProperty("base")) {
            var error = $root.s2c_base.verify(message.base);
            if (error)
                return "base." + error;
        }
        if (message.carrot != null && message.hasOwnProperty("carrot"))
            if (!$util.isInteger(message.carrot))
                return "carrot: integer expected";
        if (message.clover != null && message.hasOwnProperty("clover"))
            if (!$util.isInteger(message.clover))
                return "clover: integer expected";
        if (message.goldCarrot != null && message.hasOwnProperty("goldCarrot"))
            if (!$util.isInteger(message.goldCarrot))
                return "goldCarrot: integer expected";
        if (message.minCarrot != null && message.hasOwnProperty("minCarrot"))
            if (!$util.isInteger(message.minCarrot))
                return "minCarrot: integer expected";
        return null;
    };

    /**
     * Creates a s2c_GetResources message from a plain object. Also converts values to their respective internal types.
     * @function fromObject
     * @memberof s2c_GetResources
     * @static
     * @param {Object.<string,*>} object Plain object
     * @returns {s2c_GetResources} s2c_GetResources
     */
    s2c_GetResources.fromObject = function fromObject(object) {
        if (object instanceof $root.s2c_GetResources)
            return object;
        var message = new $root.s2c_GetResources();
        if (object.base != null) {
            if (typeof object.base !== "object")
                throw TypeError(".s2c_GetResources.base: object expected");
            message.base = $root.s2c_base.fromObject(object.base);
        }
        if (object.carrot != null)
            message.carrot = object.carrot | 0;
        if (object.clover != null)
            message.clover = object.clover | 0;
        if (object.goldCarrot != null)
            message.goldCarrot = object.goldCarrot | 0;
        if (object.minCarrot != null)
            message.minCarrot = object.minCarrot | 0;
        return message;
    };

    /**
     * Creates a plain object from a s2c_GetResources message. Also converts values to other types if specified.
     * @function toObject
     * @memberof s2c_GetResources
     * @static
     * @param {s2c_GetResources} message s2c_GetResources
     * @param {$protobuf.IConversionOptions} [options] Conversion options
     * @returns {Object.<string,*>} Plain object
     */
    s2c_GetResources.toObject = function toObject(message, options) {
        if (!options)
            options = {};
        var object = {};
        if (options.defaults) {
            object.base = null;
            object.carrot = 0;
            object.clover = 0;
            object.goldCarrot = 0;
            object.minCarrot = 0;
        }
        if (message.base != null && message.hasOwnProperty("base"))
            object.base = $root.s2c_base.toObject(message.base, options);
        if (message.carrot != null && message.hasOwnProperty("carrot"))
            object.carrot = message.carrot;
        if (message.clover != null && message.hasOwnProperty("clover"))
            object.clover = message.clover;
        if (message.goldCarrot != null && message.hasOwnProperty("goldCarrot"))
            object.goldCarrot = message.goldCarrot;
        if (message.minCarrot != null && message.hasOwnProperty("minCarrot"))
            object.minCarrot = message.minCarrot;
        return object;
    };

    /**
     * Converts this s2c_GetResources to JSON.
     * @function toJSON
     * @memberof s2c_GetResources
     * @instance
     * @returns {Object.<string,*>} JSON object
     */
    s2c_GetResources.prototype.toJSON = function toJSON() {
        return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
    };

    /**
     * Gets the default type url for s2c_GetResources
     * @function getTypeUrl
     * @memberof s2c_GetResources
     * @static
     * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
     * @returns {string} The default type url
     */
    s2c_GetResources.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
        if (typeUrlPrefix === undefined) {
            typeUrlPrefix = "type.googleapis.com";
        }
        return typeUrlPrefix + "/s2c_GetResources";
    };

    return s2c_GetResources;
})();

$root.s2c_UpdateResources = (function() {

    /**
     * Properties of a s2c_UpdateResources.
     * @exports Is2c_UpdateResources
     * @interface Is2c_UpdateResources
     * @property {Is2c_base|null} [base] s2c_UpdateResources base
     * @property {number|null} [carrot] s2c_UpdateResources carrot
     * @property {number|null} [clover] s2c_UpdateResources clover
     * @property {number|null} [goldCarrot] s2c_UpdateResources goldCarrot
     * @property {number|null} [minCarrot] s2c_UpdateResources minCarrot
     */

    /**
     * Constructs a new s2c_UpdateResources.
     * @exports s2c_UpdateResources
     * @classdesc Represents a s2c_UpdateResources.
     * @implements Is2c_UpdateResources
     * @constructor
     * @param {Is2c_UpdateResources=} [properties] Properties to set
     */
    function s2c_UpdateResources(properties) {
        if (properties)
            for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
                if (properties[keys[i]] != null)
                    this[keys[i]] = properties[keys[i]];
    }

    /**
     * s2c_UpdateResources base.
     * @member {Is2c_base|null|undefined} base
     * @memberof s2c_UpdateResources
     * @instance
     */
    s2c_UpdateResources.prototype.base = null;

    /**
     * s2c_UpdateResources carrot.
     * @member {number} carrot
     * @memberof s2c_UpdateResources
     * @instance
     */
    s2c_UpdateResources.prototype.carrot = 0;

    /**
     * s2c_UpdateResources clover.
     * @member {number} clover
     * @memberof s2c_UpdateResources
     * @instance
     */
    s2c_UpdateResources.prototype.clover = 0;

    /**
     * s2c_UpdateResources goldCarrot.
     * @member {number} goldCarrot
     * @memberof s2c_UpdateResources
     * @instance
     */
    s2c_UpdateResources.prototype.goldCarrot = 0;

    /**
     * s2c_UpdateResources minCarrot.
     * @member {number} minCarrot
     * @memberof s2c_UpdateResources
     * @instance
     */
    s2c_UpdateResources.prototype.minCarrot = 0;

    /**
     * Creates a new s2c_UpdateResources instance using the specified properties.
     * @function create
     * @memberof s2c_UpdateResources
     * @static
     * @param {Is2c_UpdateResources=} [properties] Properties to set
     * @returns {s2c_UpdateResources} s2c_UpdateResources instance
     */
    s2c_UpdateResources.create = function create(properties) {
        return new s2c_UpdateResources(properties);
    };

    /**
     * Encodes the specified s2c_UpdateResources message. Does not implicitly {@link s2c_UpdateResources.verify|verify} messages.
     * @function encode
     * @memberof s2c_UpdateResources
     * @static
     * @param {Is2c_UpdateResources} message s2c_UpdateResources message or plain object to encode
     * @param {$protobuf.Writer} [writer] Writer to encode to
     * @returns {$protobuf.Writer} Writer
     */
    s2c_UpdateResources.encode = function encode(message, writer) {
        if (!writer)
            writer = $Writer.create();
        if (message.base != null && Object.hasOwnProperty.call(message, "base"))
            $root.s2c_base.encode(message.base, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();
        if (message.carrot != null && Object.hasOwnProperty.call(message, "carrot"))
            writer.uint32(/* id 2, wireType 0 =*/16).int32(message.carrot);
        if (message.clover != null && Object.hasOwnProperty.call(message, "clover"))
            writer.uint32(/* id 3, wireType 0 =*/24).int32(message.clover);
        if (message.goldCarrot != null && Object.hasOwnProperty.call(message, "goldCarrot"))
            writer.uint32(/* id 4, wireType 0 =*/32).int32(message.goldCarrot);
        if (message.minCarrot != null && Object.hasOwnProperty.call(message, "minCarrot"))
            writer.uint32(/* id 5, wireType 0 =*/40).int32(message.minCarrot);
        return writer;
    };

    /**
     * Encodes the specified s2c_UpdateResources message, length delimited. Does not implicitly {@link s2c_UpdateResources.verify|verify} messages.
     * @function encodeDelimited
     * @memberof s2c_UpdateResources
     * @static
     * @param {Is2c_UpdateResources} message s2c_UpdateResources message or plain object to encode
     * @param {$protobuf.Writer} [writer] Writer to encode to
     * @returns {$protobuf.Writer} Writer
     */
    s2c_UpdateResources.encodeDelimited = function encodeDelimited(message, writer) {
        return this.encode(message, writer).ldelim();
    };

    /**
     * Decodes a s2c_UpdateResources message from the specified reader or buffer.
     * @function decode
     * @memberof s2c_UpdateResources
     * @static
     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
     * @param {number} [length] Message length if known beforehand
     * @returns {s2c_UpdateResources} s2c_UpdateResources
     * @throws {Error} If the payload is not a reader or valid buffer
     * @throws {$protobuf.util.ProtocolError} If required fields are missing
     */
    s2c_UpdateResources.decode = function decode(reader, length) {
        if (!(reader instanceof $Reader))
            reader = $Reader.create(reader);
        var end = length === undefined ? reader.len : reader.pos + length, message = new $root.s2c_UpdateResources();
        while (reader.pos < end) {
            var tag = reader.uint32();
            switch (tag >>> 3) {
            case 1: {
                    message.base = $root.s2c_base.decode(reader, reader.uint32());
                    break;
                }
            case 2: {
                    message.carrot = reader.int32();
                    break;
                }
            case 3: {
                    message.clover = reader.int32();
                    break;
                }
            case 4: {
                    message.goldCarrot = reader.int32();
                    break;
                }
            case 5: {
                    message.minCarrot = reader.int32();
                    break;
                }
            default:
                reader.skipType(tag & 7);
                break;
            }
        }
        return message;
    };

    /**
     * Decodes a s2c_UpdateResources message from the specified reader or buffer, length delimited.
     * @function decodeDelimited
     * @memberof s2c_UpdateResources
     * @static
     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
     * @returns {s2c_UpdateResources} s2c_UpdateResources
     * @throws {Error} If the payload is not a reader or valid buffer
     * @throws {$protobuf.util.ProtocolError} If required fields are missing
     */
    s2c_UpdateResources.decodeDelimited = function decodeDelimited(reader) {
        if (!(reader instanceof $Reader))
            reader = new $Reader(reader);
        return this.decode(reader, reader.uint32());
    };

    /**
     * Verifies a s2c_UpdateResources message.
     * @function verify
     * @memberof s2c_UpdateResources
     * @static
     * @param {Object.<string,*>} message Plain object to verify
     * @returns {string|null} `null` if valid, otherwise the reason why it is not
     */
    s2c_UpdateResources.verify = function verify(message) {
        if (typeof message !== "object" || message === null)
            return "object expected";
        if (message.base != null && message.hasOwnProperty("base")) {
            var error = $root.s2c_base.verify(message.base);
            if (error)
                return "base." + error;
        }
        if (message.carrot != null && message.hasOwnProperty("carrot"))
            if (!$util.isInteger(message.carrot))
                return "carrot: integer expected";
        if (message.clover != null && message.hasOwnProperty("clover"))
            if (!$util.isInteger(message.clover))
                return "clover: integer expected";
        if (message.goldCarrot != null && message.hasOwnProperty("goldCarrot"))
            if (!$util.isInteger(message.goldCarrot))
                return "goldCarrot: integer expected";
        if (message.minCarrot != null && message.hasOwnProperty("minCarrot"))
            if (!$util.isInteger(message.minCarrot))
                return "minCarrot: integer expected";
        return null;
    };

    /**
     * Creates a s2c_UpdateResources message from a plain object. Also converts values to their respective internal types.
     * @function fromObject
     * @memberof s2c_UpdateResources
     * @static
     * @param {Object.<string,*>} object Plain object
     * @returns {s2c_UpdateResources} s2c_UpdateResources
     */
    s2c_UpdateResources.fromObject = function fromObject(object) {
        if (object instanceof $root.s2c_UpdateResources)
            return object;
        var message = new $root.s2c_UpdateResources();
        if (object.base != null) {
            if (typeof object.base !== "object")
                throw TypeError(".s2c_UpdateResources.base: object expected");
            message.base = $root.s2c_base.fromObject(object.base);
        }
        if (object.carrot != null)
            message.carrot = object.carrot | 0;
        if (object.clover != null)
            message.clover = object.clover | 0;
        if (object.goldCarrot != null)
            message.goldCarrot = object.goldCarrot | 0;
        if (object.minCarrot != null)
            message.minCarrot = object.minCarrot | 0;
        return message;
    };

    /**
     * Creates a plain object from a s2c_UpdateResources message. Also converts values to other types if specified.
     * @function toObject
     * @memberof s2c_UpdateResources
     * @static
     * @param {s2c_UpdateResources} message s2c_UpdateResources
     * @param {$protobuf.IConversionOptions} [options] Conversion options
     * @returns {Object.<string,*>} Plain object
     */
    s2c_UpdateResources.toObject = function toObject(message, options) {
        if (!options)
            options = {};
        var object = {};
        if (options.defaults) {
            object.base = null;
            object.carrot = 0;
            object.clover = 0;
            object.goldCarrot = 0;
            object.minCarrot = 0;
        }
        if (message.base != null && message.hasOwnProperty("base"))
            object.base = $root.s2c_base.toObject(message.base, options);
        if (message.carrot != null && message.hasOwnProperty("carrot"))
            object.carrot = message.carrot;
        if (message.clover != null && message.hasOwnProperty("clover"))
            object.clover = message.clover;
        if (message.goldCarrot != null && message.hasOwnProperty("goldCarrot"))
            object.goldCarrot = message.goldCarrot;
        if (message.minCarrot != null && message.hasOwnProperty("minCarrot"))
            object.minCarrot = message.minCarrot;
        return object;
    };

    /**
     * Converts this s2c_UpdateResources to JSON.
     * @function toJSON
     * @memberof s2c_UpdateResources
     * @instance
     * @returns {Object.<string,*>} JSON object
     */
    s2c_UpdateResources.prototype.toJSON = function toJSON() {
        return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
    };

    /**
     * Gets the default type url for s2c_UpdateResources
     * @function getTypeUrl
     * @memberof s2c_UpdateResources
     * @static
     * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
     * @returns {string} The default type url
     */
    s2c_UpdateResources.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
        if (typeUrlPrefix === undefined) {
            typeUrlPrefix = "type.googleapis.com";
        }
        return typeUrlPrefix + "/s2c_UpdateResources";
    };

    return s2c_UpdateResources;
})();

$root.c2s_HarvestResources = (function() {

    /**
     * Properties of a c2s_HarvestResources.
     * @exports Ic2s_HarvestResources
     * @interface Ic2s_HarvestResources
     */

    /**
     * Constructs a new c2s_HarvestResources.
     * @exports c2s_HarvestResources
     * @classdesc Represents a c2s_HarvestResources.
     * @implements Ic2s_HarvestResources
     * @constructor
     * @param {Ic2s_HarvestResources=} [properties] Properties to set
     */
    function c2s_HarvestResources(properties) {
        if (properties)
            for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
                if (properties[keys[i]] != null)
                    this[keys[i]] = properties[keys[i]];
    }

    /**
     * Creates a new c2s_HarvestResources instance using the specified properties.
     * @function create
     * @memberof c2s_HarvestResources
     * @static
     * @param {Ic2s_HarvestResources=} [properties] Properties to set
     * @returns {c2s_HarvestResources} c2s_HarvestResources instance
     */
    c2s_HarvestResources.create = function create(properties) {
        return new c2s_HarvestResources(properties);
    };

    /**
     * Encodes the specified c2s_HarvestResources message. Does not implicitly {@link c2s_HarvestResources.verify|verify} messages.
     * @function encode
     * @memberof c2s_HarvestResources
     * @static
     * @param {Ic2s_HarvestResources} message c2s_HarvestResources message or plain object to encode
     * @param {$protobuf.Writer} [writer] Writer to encode to
     * @returns {$protobuf.Writer} Writer
     */
    c2s_HarvestResources.encode = function encode(message, writer) {
        if (!writer)
            writer = $Writer.create();
        return writer;
    };

    /**
     * Encodes the specified c2s_HarvestResources message, length delimited. Does not implicitly {@link c2s_HarvestResources.verify|verify} messages.
     * @function encodeDelimited
     * @memberof c2s_HarvestResources
     * @static
     * @param {Ic2s_HarvestResources} message c2s_HarvestResources message or plain object to encode
     * @param {$protobuf.Writer} [writer] Writer to encode to
     * @returns {$protobuf.Writer} Writer
     */
    c2s_HarvestResources.encodeDelimited = function encodeDelimited(message, writer) {
        return this.encode(message, writer).ldelim();
    };

    /**
     * Decodes a c2s_HarvestResources message from the specified reader or buffer.
     * @function decode
     * @memberof c2s_HarvestResources
     * @static
     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
     * @param {number} [length] Message length if known beforehand
     * @returns {c2s_HarvestResources} c2s_HarvestResources
     * @throws {Error} If the payload is not a reader or valid buffer
     * @throws {$protobuf.util.ProtocolError} If required fields are missing
     */
    c2s_HarvestResources.decode = function decode(reader, length) {
        if (!(reader instanceof $Reader))
            reader = $Reader.create(reader);
        var end = length === undefined ? reader.len : reader.pos + length, message = new $root.c2s_HarvestResources();
        while (reader.pos < end) {
            var tag = reader.uint32();
            switch (tag >>> 3) {
            default:
                reader.skipType(tag & 7);
                break;
            }
        }
        return message;
    };

    /**
     * Decodes a c2s_HarvestResources message from the specified reader or buffer, length delimited.
     * @function decodeDelimited
     * @memberof c2s_HarvestResources
     * @static
     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
     * @returns {c2s_HarvestResources} c2s_HarvestResources
     * @throws {Error} If the payload is not a reader or valid buffer
     * @throws {$protobuf.util.ProtocolError} If required fields are missing
     */
    c2s_HarvestResources.decodeDelimited = function decodeDelimited(reader) {
        if (!(reader instanceof $Reader))
            reader = new $Reader(reader);
        return this.decode(reader, reader.uint32());
    };

    /**
     * Verifies a c2s_HarvestResources message.
     * @function verify
     * @memberof c2s_HarvestResources
     * @static
     * @param {Object.<string,*>} message Plain object to verify
     * @returns {string|null} `null` if valid, otherwise the reason why it is not
     */
    c2s_HarvestResources.verify = function verify(message) {
        if (typeof message !== "object" || message === null)
            return "object expected";
        return null;
    };

    /**
     * Creates a c2s_HarvestResources message from a plain object. Also converts values to their respective internal types.
     * @function fromObject
     * @memberof c2s_HarvestResources
     * @static
     * @param {Object.<string,*>} object Plain object
     * @returns {c2s_HarvestResources} c2s_HarvestResources
     */
    c2s_HarvestResources.fromObject = function fromObject(object) {
        if (object instanceof $root.c2s_HarvestResources)
            return object;
        return new $root.c2s_HarvestResources();
    };

    /**
     * Creates a plain object from a c2s_HarvestResources message. Also converts values to other types if specified.
     * @function toObject
     * @memberof c2s_HarvestResources
     * @static
     * @param {c2s_HarvestResources} message c2s_HarvestResources
     * @param {$protobuf.IConversionOptions} [options] Conversion options
     * @returns {Object.<string,*>} Plain object
     */
    c2s_HarvestResources.toObject = function toObject() {
        return {};
    };

    /**
     * Converts this c2s_HarvestResources to JSON.
     * @function toJSON
     * @memberof c2s_HarvestResources
     * @instance
     * @returns {Object.<string,*>} JSON object
     */
    c2s_HarvestResources.prototype.toJSON = function toJSON() {
        return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
    };

    /**
     * Gets the default type url for c2s_HarvestResources
     * @function getTypeUrl
     * @memberof c2s_HarvestResources
     * @static
     * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
     * @returns {string} The default type url
     */
    c2s_HarvestResources.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
        if (typeUrlPrefix === undefined) {
            typeUrlPrefix = "type.googleapis.com";
        }
        return typeUrlPrefix + "/c2s_HarvestResources";
    };

    return c2s_HarvestResources;
})();

$root.s2c_HarvestResources = (function() {

    /**
     * Properties of a s2c_HarvestResources.
     * @exports Is2c_HarvestResources
     * @interface Is2c_HarvestResources
     * @property {Is2c_base|null} [base] s2c_HarvestResources base
     * @property {number|null} [carrot] s2c_HarvestResources carrot
     */

    /**
     * Constructs a new s2c_HarvestResources.
     * @exports s2c_HarvestResources
     * @classdesc Represents a s2c_HarvestResources.
     * @implements Is2c_HarvestResources
     * @constructor
     * @param {Is2c_HarvestResources=} [properties] Properties to set
     */
    function s2c_HarvestResources(properties) {
        if (properties)
            for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
                if (properties[keys[i]] != null)
                    this[keys[i]] = properties[keys[i]];
    }

    /**
     * s2c_HarvestResources base.
     * @member {Is2c_base|null|undefined} base
     * @memberof s2c_HarvestResources
     * @instance
     */
    s2c_HarvestResources.prototype.base = null;

    /**
     * s2c_HarvestResources carrot.
     * @member {number} carrot
     * @memberof s2c_HarvestResources
     * @instance
     */
    s2c_HarvestResources.prototype.carrot = 0;

    /**
     * Creates a new s2c_HarvestResources instance using the specified properties.
     * @function create
     * @memberof s2c_HarvestResources
     * @static
     * @param {Is2c_HarvestResources=} [properties] Properties to set
     * @returns {s2c_HarvestResources} s2c_HarvestResources instance
     */
    s2c_HarvestResources.create = function create(properties) {
        return new s2c_HarvestResources(properties);
    };

    /**
     * Encodes the specified s2c_HarvestResources message. Does not implicitly {@link s2c_HarvestResources.verify|verify} messages.
     * @function encode
     * @memberof s2c_HarvestResources
     * @static
     * @param {Is2c_HarvestResources} message s2c_HarvestResources message or plain object to encode
     * @param {$protobuf.Writer} [writer] Writer to encode to
     * @returns {$protobuf.Writer} Writer
     */
    s2c_HarvestResources.encode = function encode(message, writer) {
        if (!writer)
            writer = $Writer.create();
        if (message.base != null && Object.hasOwnProperty.call(message, "base"))
            $root.s2c_base.encode(message.base, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();
        if (message.carrot != null && Object.hasOwnProperty.call(message, "carrot"))
            writer.uint32(/* id 2, wireType 0 =*/16).int32(message.carrot);
        return writer;
    };

    /**
     * Encodes the specified s2c_HarvestResources message, length delimited. Does not implicitly {@link s2c_HarvestResources.verify|verify} messages.
     * @function encodeDelimited
     * @memberof s2c_HarvestResources
     * @static
     * @param {Is2c_HarvestResources} message s2c_HarvestResources message or plain object to encode
     * @param {$protobuf.Writer} [writer] Writer to encode to
     * @returns {$protobuf.Writer} Writer
     */
    s2c_HarvestResources.encodeDelimited = function encodeDelimited(message, writer) {
        return this.encode(message, writer).ldelim();
    };

    /**
     * Decodes a s2c_HarvestResources message from the specified reader or buffer.
     * @function decode
     * @memberof s2c_HarvestResources
     * @static
     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
     * @param {number} [length] Message length if known beforehand
     * @returns {s2c_HarvestResources} s2c_HarvestResources
     * @throws {Error} If the payload is not a reader or valid buffer
     * @throws {$protobuf.util.ProtocolError} If required fields are missing
     */
    s2c_HarvestResources.decode = function decode(reader, length) {
        if (!(reader instanceof $Reader))
            reader = $Reader.create(reader);
        var end = length === undefined ? reader.len : reader.pos + length, message = new $root.s2c_HarvestResources();
        while (reader.pos < end) {
            var tag = reader.uint32();
            switch (tag >>> 3) {
            case 1: {
                    message.base = $root.s2c_base.decode(reader, reader.uint32());
                    break;
                }
            case 2: {
                    message.carrot = reader.int32();
                    break;
                }
            default:
                reader.skipType(tag & 7);
                break;
            }
        }
        return message;
    };

    /**
     * Decodes a s2c_HarvestResources message from the specified reader or buffer, length delimited.
     * @function decodeDelimited
     * @memberof s2c_HarvestResources
     * @static
     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
     * @returns {s2c_HarvestResources} s2c_HarvestResources
     * @throws {Error} If the payload is not a reader or valid buffer
     * @throws {$protobuf.util.ProtocolError} If required fields are missing
     */
    s2c_HarvestResources.decodeDelimited = function decodeDelimited(reader) {
        if (!(reader instanceof $Reader))
            reader = new $Reader(reader);
        return this.decode(reader, reader.uint32());
    };

    /**
     * Verifies a s2c_HarvestResources message.
     * @function verify
     * @memberof s2c_HarvestResources
     * @static
     * @param {Object.<string,*>} message Plain object to verify
     * @returns {string|null} `null` if valid, otherwise the reason why it is not
     */
    s2c_HarvestResources.verify = function verify(message) {
        if (typeof message !== "object" || message === null)
            return "object expected";
        if (message.base != null && message.hasOwnProperty("base")) {
            var error = $root.s2c_base.verify(message.base);
            if (error)
                return "base." + error;
        }
        if (message.carrot != null && message.hasOwnProperty("carrot"))
            if (!$util.isInteger(message.carrot))
                return "carrot: integer expected";
        return null;
    };

    /**
     * Creates a s2c_HarvestResources message from a plain object. Also converts values to their respective internal types.
     * @function fromObject
     * @memberof s2c_HarvestResources
     * @static
     * @param {Object.<string,*>} object Plain object
     * @returns {s2c_HarvestResources} s2c_HarvestResources
     */
    s2c_HarvestResources.fromObject = function fromObject(object) {
        if (object instanceof $root.s2c_HarvestResources)
            return object;
        var message = new $root.s2c_HarvestResources();
        if (object.base != null) {
            if (typeof object.base !== "object")
                throw TypeError(".s2c_HarvestResources.base: object expected");
            message.base = $root.s2c_base.fromObject(object.base);
        }
        if (object.carrot != null)
            message.carrot = object.carrot | 0;
        return message;
    };

    /**
     * Creates a plain object from a s2c_HarvestResources message. Also converts values to other types if specified.
     * @function toObject
     * @memberof s2c_HarvestResources
     * @static
     * @param {s2c_HarvestResources} message s2c_HarvestResources
     * @param {$protobuf.IConversionOptions} [options] Conversion options
     * @returns {Object.<string,*>} Plain object
     */
    s2c_HarvestResources.toObject = function toObject(message, options) {
        if (!options)
            options = {};
        var object = {};
        if (options.defaults) {
            object.base = null;
            object.carrot = 0;
        }
        if (message.base != null && message.hasOwnProperty("base"))
            object.base = $root.s2c_base.toObject(message.base, options);
        if (message.carrot != null && message.hasOwnProperty("carrot"))
            object.carrot = message.carrot;
        return object;
    };

    /**
     * Converts this s2c_HarvestResources to JSON.
     * @function toJSON
     * @memberof s2c_HarvestResources
     * @instance
     * @returns {Object.<string,*>} JSON object
     */
    s2c_HarvestResources.prototype.toJSON = function toJSON() {
        return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
    };

    /**
     * Gets the default type url for s2c_HarvestResources
     * @function getTypeUrl
     * @memberof s2c_HarvestResources
     * @static
     * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
     * @returns {string} The default type url
     */
    s2c_HarvestResources.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
        if (typeUrlPrefix === undefined) {
            typeUrlPrefix = "type.googleapis.com";
        }
        return typeUrlPrefix + "/s2c_HarvestResources";
    };

    return s2c_HarvestResources;
})();

$root.c2s_GetRoomInfo = (function() {

    /**
     * Properties of a c2s_GetRoomInfo.
     * @exports Ic2s_GetRoomInfo
     * @interface Ic2s_GetRoomInfo
     */

    /**
     * Constructs a new c2s_GetRoomInfo.
     * @exports c2s_GetRoomInfo
     * @classdesc Represents a c2s_GetRoomInfo.
     * @implements Ic2s_GetRoomInfo
     * @constructor
     * @param {Ic2s_GetRoomInfo=} [properties] Properties to set
     */
    function c2s_GetRoomInfo(properties) {
        if (properties)
            for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
                if (properties[keys[i]] != null)
                    this[keys[i]] = properties[keys[i]];
    }

    /**
     * Creates a new c2s_GetRoomInfo instance using the specified properties.
     * @function create
     * @memberof c2s_GetRoomInfo
     * @static
     * @param {Ic2s_GetRoomInfo=} [properties] Properties to set
     * @returns {c2s_GetRoomInfo} c2s_GetRoomInfo instance
     */
    c2s_GetRoomInfo.create = function create(properties) {
        return new c2s_GetRoomInfo(properties);
    };

    /**
     * Encodes the specified c2s_GetRoomInfo message. Does not implicitly {@link c2s_GetRoomInfo.verify|verify} messages.
     * @function encode
     * @memberof c2s_GetRoomInfo
     * @static
     * @param {Ic2s_GetRoomInfo} message c2s_GetRoomInfo message or plain object to encode
     * @param {$protobuf.Writer} [writer] Writer to encode to
     * @returns {$protobuf.Writer} Writer
     */
    c2s_GetRoomInfo.encode = function encode(message, writer) {
        if (!writer)
            writer = $Writer.create();
        return writer;
    };

    /**
     * Encodes the specified c2s_GetRoomInfo message, length delimited. Does not implicitly {@link c2s_GetRoomInfo.verify|verify} messages.
     * @function encodeDelimited
     * @memberof c2s_GetRoomInfo
     * @static
     * @param {Ic2s_GetRoomInfo} message c2s_GetRoomInfo message or plain object to encode
     * @param {$protobuf.Writer} [writer] Writer to encode to
     * @returns {$protobuf.Writer} Writer
     */
    c2s_GetRoomInfo.encodeDelimited = function encodeDelimited(message, writer) {
        return this.encode(message, writer).ldelim();
    };

    /**
     * Decodes a c2s_GetRoomInfo message from the specified reader or buffer.
     * @function decode
     * @memberof c2s_GetRoomInfo
     * @static
     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
     * @param {number} [length] Message length if known beforehand
     * @returns {c2s_GetRoomInfo} c2s_GetRoomInfo
     * @throws {Error} If the payload is not a reader or valid buffer
     * @throws {$protobuf.util.ProtocolError} If required fields are missing
     */
    c2s_GetRoomInfo.decode = function decode(reader, length) {
        if (!(reader instanceof $Reader))
            reader = $Reader.create(reader);
        var end = length === undefined ? reader.len : reader.pos + length, message = new $root.c2s_GetRoomInfo();
        while (reader.pos < end) {
            var tag = reader.uint32();
            switch (tag >>> 3) {
            default:
                reader.skipType(tag & 7);
                break;
            }
        }
        return message;
    };

    /**
     * Decodes a c2s_GetRoomInfo message from the specified reader or buffer, length delimited.
     * @function decodeDelimited
     * @memberof c2s_GetRoomInfo
     * @static
     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
     * @returns {c2s_GetRoomInfo} c2s_GetRoomInfo
     * @throws {Error} If the payload is not a reader or valid buffer
     * @throws {$protobuf.util.ProtocolError} If required fields are missing
     */
    c2s_GetRoomInfo.decodeDelimited = function decodeDelimited(reader) {
        if (!(reader instanceof $Reader))
            reader = new $Reader(reader);
        return this.decode(reader, reader.uint32());
    };

    /**
     * Verifies a c2s_GetRoomInfo message.
     * @function verify
     * @memberof c2s_GetRoomInfo
     * @static
     * @param {Object.<string,*>} message Plain object to verify
     * @returns {string|null} `null` if valid, otherwise the reason why it is not
     */
    c2s_GetRoomInfo.verify = function verify(message) {
        if (typeof message !== "object" || message === null)
            return "object expected";
        return null;
    };

    /**
     * Creates a c2s_GetRoomInfo message from a plain object. Also converts values to their respective internal types.
     * @function fromObject
     * @memberof c2s_GetRoomInfo
     * @static
     * @param {Object.<string,*>} object Plain object
     * @returns {c2s_GetRoomInfo} c2s_GetRoomInfo
     */
    c2s_GetRoomInfo.fromObject = function fromObject(object) {
        if (object instanceof $root.c2s_GetRoomInfo)
            return object;
        return new $root.c2s_GetRoomInfo();
    };

    /**
     * Creates a plain object from a c2s_GetRoomInfo message. Also converts values to other types if specified.
     * @function toObject
     * @memberof c2s_GetRoomInfo
     * @static
     * @param {c2s_GetRoomInfo} message c2s_GetRoomInfo
     * @param {$protobuf.IConversionOptions} [options] Conversion options
     * @returns {Object.<string,*>} Plain object
     */
    c2s_GetRoomInfo.toObject = function toObject() {
        return {};
    };

    /**
     * Converts this c2s_GetRoomInfo to JSON.
     * @function toJSON
     * @memberof c2s_GetRoomInfo
     * @instance
     * @returns {Object.<string,*>} JSON object
     */
    c2s_GetRoomInfo.prototype.toJSON = function toJSON() {
        return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
    };

    /**
     * Gets the default type url for c2s_GetRoomInfo
     * @function getTypeUrl
     * @memberof c2s_GetRoomInfo
     * @static
     * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
     * @returns {string} The default type url
     */
    c2s_GetRoomInfo.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
        if (typeUrlPrefix === undefined) {
            typeUrlPrefix = "type.googleapis.com";
        }
        return typeUrlPrefix + "/c2s_GetRoomInfo";
    };

    return c2s_GetRoomInfo;
})();

$root.room_info = (function() {

    /**
     * Properties of a room_info.
     * @exports Iroom_info
     * @interface Iroom_info
     * @property {number|null} [id] room_info id
     * @property {number|null} [roomId] room_info roomId
     * @property {number|null} [active] room_info active
     * @property {number|null} [theme] room_info theme
     * @property {string|null} [name] room_info name
     */

    /**
     * Constructs a new room_info.
     * @exports room_info
     * @classdesc Represents a room_info.
     * @implements Iroom_info
     * @constructor
     * @param {Iroom_info=} [properties] Properties to set
     */
    function room_info(properties) {
        if (properties)
            for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
                if (properties[keys[i]] != null)
                    this[keys[i]] = properties[keys[i]];
    }

    /**
     * room_info id.
     * @member {number} id
     * @memberof room_info
     * @instance
     */
    room_info.prototype.id = 0;

    /**
     * room_info roomId.
     * @member {number} roomId
     * @memberof room_info
     * @instance
     */
    room_info.prototype.roomId = 0;

    /**
     * room_info active.
     * @member {number} active
     * @memberof room_info
     * @instance
     */
    room_info.prototype.active = 0;

    /**
     * room_info theme.
     * @member {number} theme
     * @memberof room_info
     * @instance
     */
    room_info.prototype.theme = 0;

    /**
     * room_info name.
     * @member {string} name
     * @memberof room_info
     * @instance
     */
    room_info.prototype.name = "";

    /**
     * Creates a new room_info instance using the specified properties.
     * @function create
     * @memberof room_info
     * @static
     * @param {Iroom_info=} [properties] Properties to set
     * @returns {room_info} room_info instance
     */
    room_info.create = function create(properties) {
        return new room_info(properties);
    };

    /**
     * Encodes the specified room_info message. Does not implicitly {@link room_info.verify|verify} messages.
     * @function encode
     * @memberof room_info
     * @static
     * @param {Iroom_info} message room_info message or plain object to encode
     * @param {$protobuf.Writer} [writer] Writer to encode to
     * @returns {$protobuf.Writer} Writer
     */
    room_info.encode = function encode(message, writer) {
        if (!writer)
            writer = $Writer.create();
        if (message.id != null && Object.hasOwnProperty.call(message, "id"))
            writer.uint32(/* id 1, wireType 0 =*/8).int32(message.id);
        if (message.roomId != null && Object.hasOwnProperty.call(message, "roomId"))
            writer.uint32(/* id 2, wireType 0 =*/16).int32(message.roomId);
        if (message.active != null && Object.hasOwnProperty.call(message, "active"))
            writer.uint32(/* id 3, wireType 0 =*/24).int32(message.active);
        if (message.theme != null && Object.hasOwnProperty.call(message, "theme"))
            writer.uint32(/* id 4, wireType 0 =*/32).int32(message.theme);
        if (message.name != null && Object.hasOwnProperty.call(message, "name"))
            writer.uint32(/* id 5, wireType 2 =*/42).string(message.name);
        return writer;
    };

    /**
     * Encodes the specified room_info message, length delimited. Does not implicitly {@link room_info.verify|verify} messages.
     * @function encodeDelimited
     * @memberof room_info
     * @static
     * @param {Iroom_info} message room_info message or plain object to encode
     * @param {$protobuf.Writer} [writer] Writer to encode to
     * @returns {$protobuf.Writer} Writer
     */
    room_info.encodeDelimited = function encodeDelimited(message, writer) {
        return this.encode(message, writer).ldelim();
    };

    /**
     * Decodes a room_info message from the specified reader or buffer.
     * @function decode
     * @memberof room_info
     * @static
     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
     * @param {number} [length] Message length if known beforehand
     * @returns {room_info} room_info
     * @throws {Error} If the payload is not a reader or valid buffer
     * @throws {$protobuf.util.ProtocolError} If required fields are missing
     */
    room_info.decode = function decode(reader, length) {
        if (!(reader instanceof $Reader))
            reader = $Reader.create(reader);
        var end = length === undefined ? reader.len : reader.pos + length, message = new $root.room_info();
        while (reader.pos < end) {
            var tag = reader.uint32();
            switch (tag >>> 3) {
            case 1: {
                    message.id = reader.int32();
                    break;
                }
            case 2: {
                    message.roomId = reader.int32();
                    break;
                }
            case 3: {
                    message.active = reader.int32();
                    break;
                }
            case 4: {
                    message.theme = reader.int32();
                    break;
                }
            case 5: {
                    message.name = reader.string();
                    break;
                }
            default:
                reader.skipType(tag & 7);
                break;
            }
        }
        return message;
    };

    /**
     * Decodes a room_info message from the specified reader or buffer, length delimited.
     * @function decodeDelimited
     * @memberof room_info
     * @static
     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
     * @returns {room_info} room_info
     * @throws {Error} If the payload is not a reader or valid buffer
     * @throws {$protobuf.util.ProtocolError} If required fields are missing
     */
    room_info.decodeDelimited = function decodeDelimited(reader) {
        if (!(reader instanceof $Reader))
            reader = new $Reader(reader);
        return this.decode(reader, reader.uint32());
    };

    /**
     * Verifies a room_info message.
     * @function verify
     * @memberof room_info
     * @static
     * @param {Object.<string,*>} message Plain object to verify
     * @returns {string|null} `null` if valid, otherwise the reason why it is not
     */
    room_info.verify = function verify(message) {
        if (typeof message !== "object" || message === null)
            return "object expected";
        if (message.id != null && message.hasOwnProperty("id"))
            if (!$util.isInteger(message.id))
                return "id: integer expected";
        if (message.roomId != null && message.hasOwnProperty("roomId"))
            if (!$util.isInteger(message.roomId))
                return "roomId: integer expected";
        if (message.active != null && message.hasOwnProperty("active"))
            if (!$util.isInteger(message.active))
                return "active: integer expected";
        if (message.theme != null && message.hasOwnProperty("theme"))
            if (!$util.isInteger(message.theme))
                return "theme: integer expected";
        if (message.name != null && message.hasOwnProperty("name"))
            if (!$util.isString(message.name))
                return "name: string expected";
        return null;
    };

    /**
     * Creates a room_info message from a plain object. Also converts values to their respective internal types.
     * @function fromObject
     * @memberof room_info
     * @static
     * @param {Object.<string,*>} object Plain object
     * @returns {room_info} room_info
     */
    room_info.fromObject = function fromObject(object) {
        if (object instanceof $root.room_info)
            return object;
        var message = new $root.room_info();
        if (object.id != null)
            message.id = object.id | 0;
        if (object.roomId != null)
            message.roomId = object.roomId | 0;
        if (object.active != null)
            message.active = object.active | 0;
        if (object.theme != null)
            message.theme = object.theme | 0;
        if (object.name != null)
            message.name = String(object.name);
        return message;
    };

    /**
     * Creates a plain object from a room_info message. Also converts values to other types if specified.
     * @function toObject
     * @memberof room_info
     * @static
     * @param {room_info} message room_info
     * @param {$protobuf.IConversionOptions} [options] Conversion options
     * @returns {Object.<string,*>} Plain object
     */
    room_info.toObject = function toObject(message, options) {
        if (!options)
            options = {};
        var object = {};
        if (options.defaults) {
            object.id = 0;
            object.roomId = 0;
            object.active = 0;
            object.theme = 0;
            object.name = "";
        }
        if (message.id != null && message.hasOwnProperty("id"))
            object.id = message.id;
        if (message.roomId != null && message.hasOwnProperty("roomId"))
            object.roomId = message.roomId;
        if (message.active != null && message.hasOwnProperty("active"))
            object.active = message.active;
        if (message.theme != null && message.hasOwnProperty("theme"))
            object.theme = message.theme;
        if (message.name != null && message.hasOwnProperty("name"))
            object.name = message.name;
        return object;
    };

    /**
     * Converts this room_info to JSON.
     * @function toJSON
     * @memberof room_info
     * @instance
     * @returns {Object.<string,*>} JSON object
     */
    room_info.prototype.toJSON = function toJSON() {
        return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
    };

    /**
     * Gets the default type url for room_info
     * @function getTypeUrl
     * @memberof room_info
     * @static
     * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
     * @returns {string} The default type url
     */
    room_info.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
        if (typeUrlPrefix === undefined) {
            typeUrlPrefix = "type.googleapis.com";
        }
        return typeUrlPrefix + "/room_info";
    };

    return room_info;
})();

$root.s2c_GetRoomInfo = (function() {

    /**
     * Properties of a s2c_GetRoomInfo.
     * @exports Is2c_GetRoomInfo
     * @interface Is2c_GetRoomInfo
     * @property {Is2c_base|null} [base] s2c_GetRoomInfo base
     * @property {Array.<Iroom_info>|null} [roomInfos] s2c_GetRoomInfo roomInfos
     */

    /**
     * Constructs a new s2c_GetRoomInfo.
     * @exports s2c_GetRoomInfo
     * @classdesc Represents a s2c_GetRoomInfo.
     * @implements Is2c_GetRoomInfo
     * @constructor
     * @param {Is2c_GetRoomInfo=} [properties] Properties to set
     */
    function s2c_GetRoomInfo(properties) {
        this.roomInfos = [];
        if (properties)
            for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
                if (properties[keys[i]] != null)
                    this[keys[i]] = properties[keys[i]];
    }

    /**
     * s2c_GetRoomInfo base.
     * @member {Is2c_base|null|undefined} base
     * @memberof s2c_GetRoomInfo
     * @instance
     */
    s2c_GetRoomInfo.prototype.base = null;

    /**
     * s2c_GetRoomInfo roomInfos.
     * @member {Array.<Iroom_info>} roomInfos
     * @memberof s2c_GetRoomInfo
     * @instance
     */
    s2c_GetRoomInfo.prototype.roomInfos = $util.emptyArray;

    /**
     * Creates a new s2c_GetRoomInfo instance using the specified properties.
     * @function create
     * @memberof s2c_GetRoomInfo
     * @static
     * @param {Is2c_GetRoomInfo=} [properties] Properties to set
     * @returns {s2c_GetRoomInfo} s2c_GetRoomInfo instance
     */
    s2c_GetRoomInfo.create = function create(properties) {
        return new s2c_GetRoomInfo(properties);
    };

    /**
     * Encodes the specified s2c_GetRoomInfo message. Does not implicitly {@link s2c_GetRoomInfo.verify|verify} messages.
     * @function encode
     * @memberof s2c_GetRoomInfo
     * @static
     * @param {Is2c_GetRoomInfo} message s2c_GetRoomInfo message or plain object to encode
     * @param {$protobuf.Writer} [writer] Writer to encode to
     * @returns {$protobuf.Writer} Writer
     */
    s2c_GetRoomInfo.encode = function encode(message, writer) {
        if (!writer)
            writer = $Writer.create();
        if (message.base != null && Object.hasOwnProperty.call(message, "base"))
            $root.s2c_base.encode(message.base, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();
        if (message.roomInfos != null && message.roomInfos.length)
            for (var i = 0; i < message.roomInfos.length; ++i)
                $root.room_info.encode(message.roomInfos[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();
        return writer;
    };

    /**
     * Encodes the specified s2c_GetRoomInfo message, length delimited. Does not implicitly {@link s2c_GetRoomInfo.verify|verify} messages.
     * @function encodeDelimited
     * @memberof s2c_GetRoomInfo
     * @static
     * @param {Is2c_GetRoomInfo} message s2c_GetRoomInfo message or plain object to encode
     * @param {$protobuf.Writer} [writer] Writer to encode to
     * @returns {$protobuf.Writer} Writer
     */
    s2c_GetRoomInfo.encodeDelimited = function encodeDelimited(message, writer) {
        return this.encode(message, writer).ldelim();
    };

    /**
     * Decodes a s2c_GetRoomInfo message from the specified reader or buffer.
     * @function decode
     * @memberof s2c_GetRoomInfo
     * @static
     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
     * @param {number} [length] Message length if known beforehand
     * @returns {s2c_GetRoomInfo} s2c_GetRoomInfo
     * @throws {Error} If the payload is not a reader or valid buffer
     * @throws {$protobuf.util.ProtocolError} If required fields are missing
     */
    s2c_GetRoomInfo.decode = function decode(reader, length) {
        if (!(reader instanceof $Reader))
            reader = $Reader.create(reader);
        var end = length === undefined ? reader.len : reader.pos + length, message = new $root.s2c_GetRoomInfo();
        while (reader.pos < end) {
            var tag = reader.uint32();
            switch (tag >>> 3) {
            case 1: {
                    message.base = $root.s2c_base.decode(reader, reader.uint32());
                    break;
                }
            case 2: {
                    if (!(message.roomInfos && message.roomInfos.length))
                        message.roomInfos = [];
                    message.roomInfos.push($root.room_info.decode(reader, reader.uint32()));
                    break;
                }
            default:
                reader.skipType(tag & 7);
                break;
            }
        }
        return message;
    };

    /**
     * Decodes a s2c_GetRoomInfo message from the specified reader or buffer, length delimited.
     * @function decodeDelimited
     * @memberof s2c_GetRoomInfo
     * @static
     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
     * @returns {s2c_GetRoomInfo} s2c_GetRoomInfo
     * @throws {Error} If the payload is not a reader or valid buffer
     * @throws {$protobuf.util.ProtocolError} If required fields are missing
     */
    s2c_GetRoomInfo.decodeDelimited = function decodeDelimited(reader) {
        if (!(reader instanceof $Reader))
            reader = new $Reader(reader);
        return this.decode(reader, reader.uint32());
    };

    /**
     * Verifies a s2c_GetRoomInfo message.
     * @function verify
     * @memberof s2c_GetRoomInfo
     * @static
     * @param {Object.<string,*>} message Plain object to verify
     * @returns {string|null} `null` if valid, otherwise the reason why it is not
     */
    s2c_GetRoomInfo.verify = function verify(message) {
        if (typeof message !== "object" || message === null)
            return "object expected";
        if (message.base != null && message.hasOwnProperty("base")) {
            var error = $root.s2c_base.verify(message.base);
            if (error)
                return "base." + error;
        }
        if (message.roomInfos != null && message.hasOwnProperty("roomInfos")) {
            if (!Array.isArray(message.roomInfos))
                return "roomInfos: array expected";
            for (var i = 0; i < message.roomInfos.length; ++i) {
                var error = $root.room_info.verify(message.roomInfos[i]);
                if (error)
                    return "roomInfos." + error;
            }
        }
        return null;
    };

    /**
     * Creates a s2c_GetRoomInfo message from a plain object. Also converts values to their respective internal types.
     * @function fromObject
     * @memberof s2c_GetRoomInfo
     * @static
     * @param {Object.<string,*>} object Plain object
     * @returns {s2c_GetRoomInfo} s2c_GetRoomInfo
     */
    s2c_GetRoomInfo.fromObject = function fromObject(object) {
        if (object instanceof $root.s2c_GetRoomInfo)
            return object;
        var message = new $root.s2c_GetRoomInfo();
        if (object.base != null) {
            if (typeof object.base !== "object")
                throw TypeError(".s2c_GetRoomInfo.base: object expected");
            message.base = $root.s2c_base.fromObject(object.base);
        }
        if (object.roomInfos) {
            if (!Array.isArray(object.roomInfos))
                throw TypeError(".s2c_GetRoomInfo.roomInfos: array expected");
            message.roomInfos = [];
            for (var i = 0; i < object.roomInfos.length; ++i) {
                if (typeof object.roomInfos[i] !== "object")
                    throw TypeError(".s2c_GetRoomInfo.roomInfos: object expected");
                message.roomInfos[i] = $root.room_info.fromObject(object.roomInfos[i]);
            }
        }
        return message;
    };

    /**
     * Creates a plain object from a s2c_GetRoomInfo message. Also converts values to other types if specified.
     * @function toObject
     * @memberof s2c_GetRoomInfo
     * @static
     * @param {s2c_GetRoomInfo} message s2c_GetRoomInfo
     * @param {$protobuf.IConversionOptions} [options] Conversion options
     * @returns {Object.<string,*>} Plain object
     */
    s2c_GetRoomInfo.toObject = function toObject(message, options) {
        if (!options)
            options = {};
        var object = {};
        if (options.arrays || options.defaults)
            object.roomInfos = [];
        if (options.defaults)
            object.base = null;
        if (message.base != null && message.hasOwnProperty("base"))
            object.base = $root.s2c_base.toObject(message.base, options);
        if (message.roomInfos && message.roomInfos.length) {
            object.roomInfos = [];
            for (var j = 0; j < message.roomInfos.length; ++j)
                object.roomInfos[j] = $root.room_info.toObject(message.roomInfos[j], options);
        }
        return object;
    };

    /**
     * Converts this s2c_GetRoomInfo to JSON.
     * @function toJSON
     * @memberof s2c_GetRoomInfo
     * @instance
     * @returns {Object.<string,*>} JSON object
     */
    s2c_GetRoomInfo.prototype.toJSON = function toJSON() {
        return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
    };

    /**
     * Gets the default type url for s2c_GetRoomInfo
     * @function getTypeUrl
     * @memberof s2c_GetRoomInfo
     * @static
     * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
     * @returns {string} The default type url
     */
    s2c_GetRoomInfo.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
        if (typeUrlPrefix === undefined) {
            typeUrlPrefix = "type.googleapis.com";
        }
        return typeUrlPrefix + "/s2c_GetRoomInfo";
    };

    return s2c_GetRoomInfo;
})();

$root.s2c_UpdateRoomInfo = (function() {

    /**
     * Properties of a s2c_UpdateRoomInfo.
     * @exports Is2c_UpdateRoomInfo
     * @interface Is2c_UpdateRoomInfo
     * @property {Is2c_base|null} [base] s2c_UpdateRoomInfo base
     * @property {Iroom_info|null} [roomInfo] s2c_UpdateRoomInfo roomInfo
     */

    /**
     * Constructs a new s2c_UpdateRoomInfo.
     * @exports s2c_UpdateRoomInfo
     * @classdesc Represents a s2c_UpdateRoomInfo.
     * @implements Is2c_UpdateRoomInfo
     * @constructor
     * @param {Is2c_UpdateRoomInfo=} [properties] Properties to set
     */
    function s2c_UpdateRoomInfo(properties) {
        if (properties)
            for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
                if (properties[keys[i]] != null)
                    this[keys[i]] = properties[keys[i]];
    }

    /**
     * s2c_UpdateRoomInfo base.
     * @member {Is2c_base|null|undefined} base
     * @memberof s2c_UpdateRoomInfo
     * @instance
     */
    s2c_UpdateRoomInfo.prototype.base = null;

    /**
     * s2c_UpdateRoomInfo roomInfo.
     * @member {Iroom_info|null|undefined} roomInfo
     * @memberof s2c_UpdateRoomInfo
     * @instance
     */
    s2c_UpdateRoomInfo.prototype.roomInfo = null;

    /**
     * Creates a new s2c_UpdateRoomInfo instance using the specified properties.
     * @function create
     * @memberof s2c_UpdateRoomInfo
     * @static
     * @param {Is2c_UpdateRoomInfo=} [properties] Properties to set
     * @returns {s2c_UpdateRoomInfo} s2c_UpdateRoomInfo instance
     */
    s2c_UpdateRoomInfo.create = function create(properties) {
        return new s2c_UpdateRoomInfo(properties);
    };

    /**
     * Encodes the specified s2c_UpdateRoomInfo message. Does not implicitly {@link s2c_UpdateRoomInfo.verify|verify} messages.
     * @function encode
     * @memberof s2c_UpdateRoomInfo
     * @static
     * @param {Is2c_UpdateRoomInfo} message s2c_UpdateRoomInfo message or plain object to encode
     * @param {$protobuf.Writer} [writer] Writer to encode to
     * @returns {$protobuf.Writer} Writer
     */
    s2c_UpdateRoomInfo.encode = function encode(message, writer) {
        if (!writer)
            writer = $Writer.create();
        if (message.base != null && Object.hasOwnProperty.call(message, "base"))
            $root.s2c_base.encode(message.base, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();
        if (message.roomInfo != null && Object.hasOwnProperty.call(message, "roomInfo"))
            $root.room_info.encode(message.roomInfo, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();
        return writer;
    };

    /**
     * Encodes the specified s2c_UpdateRoomInfo message, length delimited. Does not implicitly {@link s2c_UpdateRoomInfo.verify|verify} messages.
     * @function encodeDelimited
     * @memberof s2c_UpdateRoomInfo
     * @static
     * @param {Is2c_UpdateRoomInfo} message s2c_UpdateRoomInfo message or plain object to encode
     * @param {$protobuf.Writer} [writer] Writer to encode to
     * @returns {$protobuf.Writer} Writer
     */
    s2c_UpdateRoomInfo.encodeDelimited = function encodeDelimited(message, writer) {
        return this.encode(message, writer).ldelim();
    };

    /**
     * Decodes a s2c_UpdateRoomInfo message from the specified reader or buffer.
     * @function decode
     * @memberof s2c_UpdateRoomInfo
     * @static
     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
     * @param {number} [length] Message length if known beforehand
     * @returns {s2c_UpdateRoomInfo} s2c_UpdateRoomInfo
     * @throws {Error} If the payload is not a reader or valid buffer
     * @throws {$protobuf.util.ProtocolError} If required fields are missing
     */
    s2c_UpdateRoomInfo.decode = function decode(reader, length) {
        if (!(reader instanceof $Reader))
            reader = $Reader.create(reader);
        var end = length === undefined ? reader.len : reader.pos + length, message = new $root.s2c_UpdateRoomInfo();
        while (reader.pos < end) {
            var tag = reader.uint32();
            switch (tag >>> 3) {
            case 1: {
                    message.base = $root.s2c_base.decode(reader, reader.uint32());
                    break;
                }
            case 2: {
                    message.roomInfo = $root.room_info.decode(reader, reader.uint32());
                    break;
                }
            default:
                reader.skipType(tag & 7);
                break;
            }
        }
        return message;
    };

    /**
     * Decodes a s2c_UpdateRoomInfo message from the specified reader or buffer, length delimited.
     * @function decodeDelimited
     * @memberof s2c_UpdateRoomInfo
     * @static
     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
     * @returns {s2c_UpdateRoomInfo} s2c_UpdateRoomInfo
     * @throws {Error} If the payload is not a reader or valid buffer
     * @throws {$protobuf.util.ProtocolError} If required fields are missing
     */
    s2c_UpdateRoomInfo.decodeDelimited = function decodeDelimited(reader) {
        if (!(reader instanceof $Reader))
            reader = new $Reader(reader);
        return this.decode(reader, reader.uint32());
    };

    /**
     * Verifies a s2c_UpdateRoomInfo message.
     * @function verify
     * @memberof s2c_UpdateRoomInfo
     * @static
     * @param {Object.<string,*>} message Plain object to verify
     * @returns {string|null} `null` if valid, otherwise the reason why it is not
     */
    s2c_UpdateRoomInfo.verify = function verify(message) {
        if (typeof message !== "object" || message === null)
            return "object expected";
        if (message.base != null && message.hasOwnProperty("base")) {
            var error = $root.s2c_base.verify(message.base);
            if (error)
                return "base." + error;
        }
        if (message.roomInfo != null && message.hasOwnProperty("roomInfo")) {
            var error = $root.room_info.verify(message.roomInfo);
            if (error)
                return "roomInfo." + error;
        }
        return null;
    };

    /**
     * Creates a s2c_UpdateRoomInfo message from a plain object. Also converts values to their respective internal types.
     * @function fromObject
     * @memberof s2c_UpdateRoomInfo
     * @static
     * @param {Object.<string,*>} object Plain object
     * @returns {s2c_UpdateRoomInfo} s2c_UpdateRoomInfo
     */
    s2c_UpdateRoomInfo.fromObject = function fromObject(object) {
        if (object instanceof $root.s2c_UpdateRoomInfo)
            return object;
        var message = new $root.s2c_UpdateRoomInfo();
        if (object.base != null) {
            if (typeof object.base !== "object")
                throw TypeError(".s2c_UpdateRoomInfo.base: object expected");
            message.base = $root.s2c_base.fromObject(object.base);
        }
        if (object.roomInfo != null) {
            if (typeof object.roomInfo !== "object")
                throw TypeError(".s2c_UpdateRoomInfo.roomInfo: object expected");
            message.roomInfo = $root.room_info.fromObject(object.roomInfo);
        }
        return message;
    };

    /**
     * Creates a plain object from a s2c_UpdateRoomInfo message. Also converts values to other types if specified.
     * @function toObject
     * @memberof s2c_UpdateRoomInfo
     * @static
     * @param {s2c_UpdateRoomInfo} message s2c_UpdateRoomInfo
     * @param {$protobuf.IConversionOptions} [options] Conversion options
     * @returns {Object.<string,*>} Plain object
     */
    s2c_UpdateRoomInfo.toObject = function toObject(message, options) {
        if (!options)
            options = {};
        var object = {};
        if (options.defaults) {
            object.base = null;
            object.roomInfo = null;
        }
        if (message.base != null && message.hasOwnProperty("base"))
            object.base = $root.s2c_base.toObject(message.base, options);
        if (message.roomInfo != null && message.hasOwnProperty("roomInfo"))
            object.roomInfo = $root.room_info.toObject(message.roomInfo, options);
        return object;
    };

    /**
     * Converts this s2c_UpdateRoomInfo to JSON.
     * @function toJSON
     * @memberof s2c_UpdateRoomInfo
     * @instance
     * @returns {Object.<string,*>} JSON object
     */
    s2c_UpdateRoomInfo.prototype.toJSON = function toJSON() {
        return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
    };

    /**
     * Gets the default type url for s2c_UpdateRoomInfo
     * @function getTypeUrl
     * @memberof s2c_UpdateRoomInfo
     * @static
     * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
     * @returns {string} The default type url
     */
    s2c_UpdateRoomInfo.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
        if (typeUrlPrefix === undefined) {
            typeUrlPrefix = "type.googleapis.com";
        }
        return typeUrlPrefix + "/s2c_UpdateRoomInfo";
    };

    return s2c_UpdateRoomInfo;
})();

$root.c2s_GetRoomPmtInfo = (function() {

    /**
     * Properties of a c2s_GetRoomPmtInfo.
     * @exports Ic2s_GetRoomPmtInfo
     * @interface Ic2s_GetRoomPmtInfo
     * @property {number|null} [roomId] c2s_GetRoomPmtInfo roomId
     */

    /**
     * Constructs a new c2s_GetRoomPmtInfo.
     * @exports c2s_GetRoomPmtInfo
     * @classdesc Represents a c2s_GetRoomPmtInfo.
     * @implements Ic2s_GetRoomPmtInfo
     * @constructor
     * @param {Ic2s_GetRoomPmtInfo=} [properties] Properties to set
     */
    function c2s_GetRoomPmtInfo(properties) {
        if (properties)
            for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
                if (properties[keys[i]] != null)
                    this[keys[i]] = properties[keys[i]];
    }

    /**
     * c2s_GetRoomPmtInfo roomId.
     * @member {number} roomId
     * @memberof c2s_GetRoomPmtInfo
     * @instance
     */
    c2s_GetRoomPmtInfo.prototype.roomId = 0;

    /**
     * Creates a new c2s_GetRoomPmtInfo instance using the specified properties.
     * @function create
     * @memberof c2s_GetRoomPmtInfo
     * @static
     * @param {Ic2s_GetRoomPmtInfo=} [properties] Properties to set
     * @returns {c2s_GetRoomPmtInfo} c2s_GetRoomPmtInfo instance
     */
    c2s_GetRoomPmtInfo.create = function create(properties) {
        return new c2s_GetRoomPmtInfo(properties);
    };

    /**
     * Encodes the specified c2s_GetRoomPmtInfo message. Does not implicitly {@link c2s_GetRoomPmtInfo.verify|verify} messages.
     * @function encode
     * @memberof c2s_GetRoomPmtInfo
     * @static
     * @param {Ic2s_GetRoomPmtInfo} message c2s_GetRoomPmtInfo message or plain object to encode
     * @param {$protobuf.Writer} [writer] Writer to encode to
     * @returns {$protobuf.Writer} Writer
     */
    c2s_GetRoomPmtInfo.encode = function encode(message, writer) {
        if (!writer)
            writer = $Writer.create();
        if (message.roomId != null && Object.hasOwnProperty.call(message, "roomId"))
            writer.uint32(/* id 1, wireType 0 =*/8).int32(message.roomId);
        return writer;
    };

    /**
     * Encodes the specified c2s_GetRoomPmtInfo message, length delimited. Does not implicitly {@link c2s_GetRoomPmtInfo.verify|verify} messages.
     * @function encodeDelimited
     * @memberof c2s_GetRoomPmtInfo
     * @static
     * @param {Ic2s_GetRoomPmtInfo} message c2s_GetRoomPmtInfo message or plain object to encode
     * @param {$protobuf.Writer} [writer] Writer to encode to
     * @returns {$protobuf.Writer} Writer
     */
    c2s_GetRoomPmtInfo.encodeDelimited = function encodeDelimited(message, writer) {
        return this.encode(message, writer).ldelim();
    };

    /**
     * Decodes a c2s_GetRoomPmtInfo message from the specified reader or buffer.
     * @function decode
     * @memberof c2s_GetRoomPmtInfo
     * @static
     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
     * @param {number} [length] Message length if known beforehand
     * @returns {c2s_GetRoomPmtInfo} c2s_GetRoomPmtInfo
     * @throws {Error} If the payload is not a reader or valid buffer
     * @throws {$protobuf.util.ProtocolError} If required fields are missing
     */
    c2s_GetRoomPmtInfo.decode = function decode(reader, length) {
        if (!(reader instanceof $Reader))
            reader = $Reader.create(reader);
        var end = length === undefined ? reader.len : reader.pos + length, message = new $root.c2s_GetRoomPmtInfo();
        while (reader.pos < end) {
            var tag = reader.uint32();
            switch (tag >>> 3) {
            case 1: {
                    message.roomId = reader.int32();
                    break;
                }
            default:
                reader.skipType(tag & 7);
                break;
            }
        }
        return message;
    };

    /**
     * Decodes a c2s_GetRoomPmtInfo message from the specified reader or buffer, length delimited.
     * @function decodeDelimited
     * @memberof c2s_GetRoomPmtInfo
     * @static
     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
     * @returns {c2s_GetRoomPmtInfo} c2s_GetRoomPmtInfo
     * @throws {Error} If the payload is not a reader or valid buffer
     * @throws {$protobuf.util.ProtocolError} If required fields are missing
     */
    c2s_GetRoomPmtInfo.decodeDelimited = function decodeDelimited(reader) {
        if (!(reader instanceof $Reader))
            reader = new $Reader(reader);
        return this.decode(reader, reader.uint32());
    };

    /**
     * Verifies a c2s_GetRoomPmtInfo message.
     * @function verify
     * @memberof c2s_GetRoomPmtInfo
     * @static
     * @param {Object.<string,*>} message Plain object to verify
     * @returns {string|null} `null` if valid, otherwise the reason why it is not
     */
    c2s_GetRoomPmtInfo.verify = function verify(message) {
        if (typeof message !== "object" || message === null)
            return "object expected";
        if (message.roomId != null && message.hasOwnProperty("roomId"))
            if (!$util.isInteger(message.roomId))
                return "roomId: integer expected";
        return null;
    };

    /**
     * Creates a c2s_GetRoomPmtInfo message from a plain object. Also converts values to their respective internal types.
     * @function fromObject
     * @memberof c2s_GetRoomPmtInfo
     * @static
     * @param {Object.<string,*>} object Plain object
     * @returns {c2s_GetRoomPmtInfo} c2s_GetRoomPmtInfo
     */
    c2s_GetRoomPmtInfo.fromObject = function fromObject(object) {
        if (object instanceof $root.c2s_GetRoomPmtInfo)
            return object;
        var message = new $root.c2s_GetRoomPmtInfo();
        if (object.roomId != null)
            message.roomId = object.roomId | 0;
        return message;
    };

    /**
     * Creates a plain object from a c2s_GetRoomPmtInfo message. Also converts values to other types if specified.
     * @function toObject
     * @memberof c2s_GetRoomPmtInfo
     * @static
     * @param {c2s_GetRoomPmtInfo} message c2s_GetRoomPmtInfo
     * @param {$protobuf.IConversionOptions} [options] Conversion options
     * @returns {Object.<string,*>} Plain object
     */
    c2s_GetRoomPmtInfo.toObject = function toObject(message, options) {
        if (!options)
            options = {};
        var object = {};
        if (options.defaults)
            object.roomId = 0;
        if (message.roomId != null && message.hasOwnProperty("roomId"))
            object.roomId = message.roomId;
        return object;
    };

    /**
     * Converts this c2s_GetRoomPmtInfo to JSON.
     * @function toJSON
     * @memberof c2s_GetRoomPmtInfo
     * @instance
     * @returns {Object.<string,*>} JSON object
     */
    c2s_GetRoomPmtInfo.prototype.toJSON = function toJSON() {
        return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
    };

    /**
     * Gets the default type url for c2s_GetRoomPmtInfo
     * @function getTypeUrl
     * @memberof c2s_GetRoomPmtInfo
     * @static
     * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
     * @returns {string} The default type url
     */
    c2s_GetRoomPmtInfo.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
        if (typeUrlPrefix === undefined) {
            typeUrlPrefix = "type.googleapis.com";
        }
        return typeUrlPrefix + "/c2s_GetRoomPmtInfo";
    };

    return c2s_GetRoomPmtInfo;
})();

$root.room_pmt_info = (function() {

    /**
     * Properties of a room_pmt_info.
     * @exports Iroom_pmt_info
     * @interface Iroom_pmt_info
     * @property {number|null} [id] room_pmt_info id
     * @property {number|null} [roomId] room_pmt_info roomId
     * @property {number|null} [pmtId] room_pmt_info pmtId
     * @property {number|null} [level] room_pmt_info level
     * @property {number|null} [pmtLevel] room_pmt_info pmtLevel
     * @property {string|null} [name] room_pmt_info name
     */

    /**
     * Constructs a new room_pmt_info.
     * @exports room_pmt_info
     * @classdesc Represents a room_pmt_info.
     * @implements Iroom_pmt_info
     * @constructor
     * @param {Iroom_pmt_info=} [properties] Properties to set
     */
    function room_pmt_info(properties) {
        if (properties)
            for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
                if (properties[keys[i]] != null)
                    this[keys[i]] = properties[keys[i]];
    }

    /**
     * room_pmt_info id.
     * @member {number} id
     * @memberof room_pmt_info
     * @instance
     */
    room_pmt_info.prototype.id = 0;

    /**
     * room_pmt_info roomId.
     * @member {number} roomId
     * @memberof room_pmt_info
     * @instance
     */
    room_pmt_info.prototype.roomId = 0;

    /**
     * room_pmt_info pmtId.
     * @member {number} pmtId
     * @memberof room_pmt_info
     * @instance
     */
    room_pmt_info.prototype.pmtId = 0;

    /**
     * room_pmt_info level.
     * @member {number} level
     * @memberof room_pmt_info
     * @instance
     */
    room_pmt_info.prototype.level = 0;

    /**
     * room_pmt_info pmtLevel.
     * @member {number} pmtLevel
     * @memberof room_pmt_info
     * @instance
     */
    room_pmt_info.prototype.pmtLevel = 0;

    /**
     * room_pmt_info name.
     * @member {string} name
     * @memberof room_pmt_info
     * @instance
     */
    room_pmt_info.prototype.name = "";

    /**
     * Creates a new room_pmt_info instance using the specified properties.
     * @function create
     * @memberof room_pmt_info
     * @static
     * @param {Iroom_pmt_info=} [properties] Properties to set
     * @returns {room_pmt_info} room_pmt_info instance
     */
    room_pmt_info.create = function create(properties) {
        return new room_pmt_info(properties);
    };

    /**
     * Encodes the specified room_pmt_info message. Does not implicitly {@link room_pmt_info.verify|verify} messages.
     * @function encode
     * @memberof room_pmt_info
     * @static
     * @param {Iroom_pmt_info} message room_pmt_info message or plain object to encode
     * @param {$protobuf.Writer} [writer] Writer to encode to
     * @returns {$protobuf.Writer} Writer
     */
    room_pmt_info.encode = function encode(message, writer) {
        if (!writer)
            writer = $Writer.create();
        if (message.id != null && Object.hasOwnProperty.call(message, "id"))
            writer.uint32(/* id 1, wireType 0 =*/8).int32(message.id);
        if (message.roomId != null && Object.hasOwnProperty.call(message, "roomId"))
            writer.uint32(/* id 2, wireType 0 =*/16).int32(message.roomId);
        if (message.pmtId != null && Object.hasOwnProperty.call(message, "pmtId"))
            writer.uint32(/* id 3, wireType 0 =*/24).int32(message.pmtId);
        if (message.level != null && Object.hasOwnProperty.call(message, "level"))
            writer.uint32(/* id 4, wireType 0 =*/32).int32(message.level);
        if (message.pmtLevel != null && Object.hasOwnProperty.call(message, "pmtLevel"))
            writer.uint32(/* id 5, wireType 0 =*/40).int32(message.pmtLevel);
        if (message.name != null && Object.hasOwnProperty.call(message, "name"))
            writer.uint32(/* id 6, wireType 2 =*/50).string(message.name);
        return writer;
    };

    /**
     * Encodes the specified room_pmt_info message, length delimited. Does not implicitly {@link room_pmt_info.verify|verify} messages.
     * @function encodeDelimited
     * @memberof room_pmt_info
     * @static
     * @param {Iroom_pmt_info} message room_pmt_info message or plain object to encode
     * @param {$protobuf.Writer} [writer] Writer to encode to
     * @returns {$protobuf.Writer} Writer
     */
    room_pmt_info.encodeDelimited = function encodeDelimited(message, writer) {
        return this.encode(message, writer).ldelim();
    };

    /**
     * Decodes a room_pmt_info message from the specified reader or buffer.
     * @function decode
     * @memberof room_pmt_info
     * @static
     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
     * @param {number} [length] Message length if known beforehand
     * @returns {room_pmt_info} room_pmt_info
     * @throws {Error} If the payload is not a reader or valid buffer
     * @throws {$protobuf.util.ProtocolError} If required fields are missing
     */
    room_pmt_info.decode = function decode(reader, length) {
        if (!(reader instanceof $Reader))
            reader = $Reader.create(reader);
        var end = length === undefined ? reader.len : reader.pos + length, message = new $root.room_pmt_info();
        while (reader.pos < end) {
            var tag = reader.uint32();
            switch (tag >>> 3) {
            case 1: {
                    message.id = reader.int32();
                    break;
                }
            case 2: {
                    message.roomId = reader.int32();
                    break;
                }
            case 3: {
                    message.pmtId = reader.int32();
                    break;
                }
            case 4: {
                    message.level = reader.int32();
                    break;
                }
            case 5: {
                    message.pmtLevel = reader.int32();
                    break;
                }
            case 6: {
                    message.name = reader.string();
                    break;
                }
            default:
                reader.skipType(tag & 7);
                break;
            }
        }
        return message;
    };

    /**
     * Decodes a room_pmt_info message from the specified reader or buffer, length delimited.
     * @function decodeDelimited
     * @memberof room_pmt_info
     * @static
     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
     * @returns {room_pmt_info} room_pmt_info
     * @throws {Error} If the payload is not a reader or valid buffer
     * @throws {$protobuf.util.ProtocolError} If required fields are missing
     */
    room_pmt_info.decodeDelimited = function decodeDelimited(reader) {
        if (!(reader instanceof $Reader))
            reader = new $Reader(reader);
        return this.decode(reader, reader.uint32());
    };

    /**
     * Verifies a room_pmt_info message.
     * @function verify
     * @memberof room_pmt_info
     * @static
     * @param {Object.<string,*>} message Plain object to verify
     * @returns {string|null} `null` if valid, otherwise the reason why it is not
     */
    room_pmt_info.verify = function verify(message) {
        if (typeof message !== "object" || message === null)
            return "object expected";
        if (message.id != null && message.hasOwnProperty("id"))
            if (!$util.isInteger(message.id))
                return "id: integer expected";
        if (message.roomId != null && message.hasOwnProperty("roomId"))
            if (!$util.isInteger(message.roomId))
                return "roomId: integer expected";
        if (message.pmtId != null && message.hasOwnProperty("pmtId"))
            if (!$util.isInteger(message.pmtId))
                return "pmtId: integer expected";
        if (message.level != null && message.hasOwnProperty("level"))
            if (!$util.isInteger(message.level))
                return "level: integer expected";
        if (message.pmtLevel != null && message.hasOwnProperty("pmtLevel"))
            if (!$util.isInteger(message.pmtLevel))
                return "pmtLevel: integer expected";
        if (message.name != null && message.hasOwnProperty("name"))
            if (!$util.isString(message.name))
                return "name: string expected";
        return null;
    };

    /**
     * Creates a room_pmt_info message from a plain object. Also converts values to their respective internal types.
     * @function fromObject
     * @memberof room_pmt_info
     * @static
     * @param {Object.<string,*>} object Plain object
     * @returns {room_pmt_info} room_pmt_info
     */
    room_pmt_info.fromObject = function fromObject(object) {
        if (object instanceof $root.room_pmt_info)
            return object;
        var message = new $root.room_pmt_info();
        if (object.id != null)
            message.id = object.id | 0;
        if (object.roomId != null)
            message.roomId = object.roomId | 0;
        if (object.pmtId != null)
            message.pmtId = object.pmtId | 0;
        if (object.level != null)
            message.level = object.level | 0;
        if (object.pmtLevel != null)
            message.pmtLevel = object.pmtLevel | 0;
        if (object.name != null)
            message.name = String(object.name);
        return message;
    };

    /**
     * Creates a plain object from a room_pmt_info message. Also converts values to other types if specified.
     * @function toObject
     * @memberof room_pmt_info
     * @static
     * @param {room_pmt_info} message room_pmt_info
     * @param {$protobuf.IConversionOptions} [options] Conversion options
     * @returns {Object.<string,*>} Plain object
     */
    room_pmt_info.toObject = function toObject(message, options) {
        if (!options)
            options = {};
        var object = {};
        if (options.defaults) {
            object.id = 0;
            object.roomId = 0;
            object.pmtId = 0;
            object.level = 0;
            object.pmtLevel = 0;
            object.name = "";
        }
        if (message.id != null && message.hasOwnProperty("id"))
            object.id = message.id;
        if (message.roomId != null && message.hasOwnProperty("roomId"))
            object.roomId = message.roomId;
        if (message.pmtId != null && message.hasOwnProperty("pmtId"))
            object.pmtId = message.pmtId;
        if (message.level != null && message.hasOwnProperty("level"))
            object.level = message.level;
        if (message.pmtLevel != null && message.hasOwnProperty("pmtLevel"))
            object.pmtLevel = message.pmtLevel;
        if (message.name != null && message.hasOwnProperty("name"))
            object.name = message.name;
        return object;
    };

    /**
     * Converts this room_pmt_info to JSON.
     * @function toJSON
     * @memberof room_pmt_info
     * @instance
     * @returns {Object.<string,*>} JSON object
     */
    room_pmt_info.prototype.toJSON = function toJSON() {
        return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
    };

    /**
     * Gets the default type url for room_pmt_info
     * @function getTypeUrl
     * @memberof room_pmt_info
     * @static
     * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
     * @returns {string} The default type url
     */
    room_pmt_info.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
        if (typeUrlPrefix === undefined) {
            typeUrlPrefix = "type.googleapis.com";
        }
        return typeUrlPrefix + "/room_pmt_info";
    };

    return room_pmt_info;
})();

$root.s2c_GetRoomPmtInfo = (function() {

    /**
     * Properties of a s2c_GetRoomPmtInfo.
     * @exports Is2c_GetRoomPmtInfo
     * @interface Is2c_GetRoomPmtInfo
     * @property {Is2c_base|null} [base] s2c_GetRoomPmtInfo base
     * @property {Array.<Iroom_pmt_info>|null} [roomPmtInfo] s2c_GetRoomPmtInfo roomPmtInfo
     */

    /**
     * Constructs a new s2c_GetRoomPmtInfo.
     * @exports s2c_GetRoomPmtInfo
     * @classdesc Represents a s2c_GetRoomPmtInfo.
     * @implements Is2c_GetRoomPmtInfo
     * @constructor
     * @param {Is2c_GetRoomPmtInfo=} [properties] Properties to set
     */
    function s2c_GetRoomPmtInfo(properties) {
        this.roomPmtInfo = [];
        if (properties)
            for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
                if (properties[keys[i]] != null)
                    this[keys[i]] = properties[keys[i]];
    }

    /**
     * s2c_GetRoomPmtInfo base.
     * @member {Is2c_base|null|undefined} base
     * @memberof s2c_GetRoomPmtInfo
     * @instance
     */
    s2c_GetRoomPmtInfo.prototype.base = null;

    /**
     * s2c_GetRoomPmtInfo roomPmtInfo.
     * @member {Array.<Iroom_pmt_info>} roomPmtInfo
     * @memberof s2c_GetRoomPmtInfo
     * @instance
     */
    s2c_GetRoomPmtInfo.prototype.roomPmtInfo = $util.emptyArray;

    /**
     * Creates a new s2c_GetRoomPmtInfo instance using the specified properties.
     * @function create
     * @memberof s2c_GetRoomPmtInfo
     * @static
     * @param {Is2c_GetRoomPmtInfo=} [properties] Properties to set
     * @returns {s2c_GetRoomPmtInfo} s2c_GetRoomPmtInfo instance
     */
    s2c_GetRoomPmtInfo.create = function create(properties) {
        return new s2c_GetRoomPmtInfo(properties);
    };

    /**
     * Encodes the specified s2c_GetRoomPmtInfo message. Does not implicitly {@link s2c_GetRoomPmtInfo.verify|verify} messages.
     * @function encode
     * @memberof s2c_GetRoomPmtInfo
     * @static
     * @param {Is2c_GetRoomPmtInfo} message s2c_GetRoomPmtInfo message or plain object to encode
     * @param {$protobuf.Writer} [writer] Writer to encode to
     * @returns {$protobuf.Writer} Writer
     */
    s2c_GetRoomPmtInfo.encode = function encode(message, writer) {
        if (!writer)
            writer = $Writer.create();
        if (message.base != null && Object.hasOwnProperty.call(message, "base"))
            $root.s2c_base.encode(message.base, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();
        if (message.roomPmtInfo != null && message.roomPmtInfo.length)
            for (var i = 0; i < message.roomPmtInfo.length; ++i)
                $root.room_pmt_info.encode(message.roomPmtInfo[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();
        return writer;
    };

    /**
     * Encodes the specified s2c_GetRoomPmtInfo message, length delimited. Does not implicitly {@link s2c_GetRoomPmtInfo.verify|verify} messages.
     * @function encodeDelimited
     * @memberof s2c_GetRoomPmtInfo
     * @static
     * @param {Is2c_GetRoomPmtInfo} message s2c_GetRoomPmtInfo message or plain object to encode
     * @param {$protobuf.Writer} [writer] Writer to encode to
     * @returns {$protobuf.Writer} Writer
     */
    s2c_GetRoomPmtInfo.encodeDelimited = function encodeDelimited(message, writer) {
        return this.encode(message, writer).ldelim();
    };

    /**
     * Decodes a s2c_GetRoomPmtInfo message from the specified reader or buffer.
     * @function decode
     * @memberof s2c_GetRoomPmtInfo
     * @static
     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
     * @param {number} [length] Message length if known beforehand
     * @returns {s2c_GetRoomPmtInfo} s2c_GetRoomPmtInfo
     * @throws {Error} If the payload is not a reader or valid buffer
     * @throws {$protobuf.util.ProtocolError} If required fields are missing
     */
    s2c_GetRoomPmtInfo.decode = function decode(reader, length) {
        if (!(reader instanceof $Reader))
            reader = $Reader.create(reader);
        var end = length === undefined ? reader.len : reader.pos + length, message = new $root.s2c_GetRoomPmtInfo();
        while (reader.pos < end) {
            var tag = reader.uint32();
            switch (tag >>> 3) {
            case 1: {
                    message.base = $root.s2c_base.decode(reader, reader.uint32());
                    break;
                }
            case 2: {
                    if (!(message.roomPmtInfo && message.roomPmtInfo.length))
                        message.roomPmtInfo = [];
                    message.roomPmtInfo.push($root.room_pmt_info.decode(reader, reader.uint32()));
                    break;
                }
            default:
                reader.skipType(tag & 7);
                break;
            }
        }
        return message;
    };

    /**
     * Decodes a s2c_GetRoomPmtInfo message from the specified reader or buffer, length delimited.
     * @function decodeDelimited
     * @memberof s2c_GetRoomPmtInfo
     * @static
     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
     * @returns {s2c_GetRoomPmtInfo} s2c_GetRoomPmtInfo
     * @throws {Error} If the payload is not a reader or valid buffer
     * @throws {$protobuf.util.ProtocolError} If required fields are missing
     */
    s2c_GetRoomPmtInfo.decodeDelimited = function decodeDelimited(reader) {
        if (!(reader instanceof $Reader))
            reader = new $Reader(reader);
        return this.decode(reader, reader.uint32());
    };

    /**
     * Verifies a s2c_GetRoomPmtInfo message.
     * @function verify
     * @memberof s2c_GetRoomPmtInfo
     * @static
     * @param {Object.<string,*>} message Plain object to verify
     * @returns {string|null} `null` if valid, otherwise the reason why it is not
     */
    s2c_GetRoomPmtInfo.verify = function verify(message) {
        if (typeof message !== "object" || message === null)
            return "object expected";
        if (message.base != null && message.hasOwnProperty("base")) {
            var error = $root.s2c_base.verify(message.base);
            if (error)
                return "base." + error;
        }
        if (message.roomPmtInfo != null && message.hasOwnProperty("roomPmtInfo")) {
            if (!Array.isArray(message.roomPmtInfo))
                return "roomPmtInfo: array expected";
            for (var i = 0; i < message.roomPmtInfo.length; ++i) {
                var error = $root.room_pmt_info.verify(message.roomPmtInfo[i]);
                if (error)
                    return "roomPmtInfo." + error;
            }
        }
        return null;
    };

    /**
     * Creates a s2c_GetRoomPmtInfo message from a plain object. Also converts values to their respective internal types.
     * @function fromObject
     * @memberof s2c_GetRoomPmtInfo
     * @static
     * @param {Object.<string,*>} object Plain object
     * @returns {s2c_GetRoomPmtInfo} s2c_GetRoomPmtInfo
     */
    s2c_GetRoomPmtInfo.fromObject = function fromObject(object) {
        if (object instanceof $root.s2c_GetRoomPmtInfo)
            return object;
        var message = new $root.s2c_GetRoomPmtInfo();
        if (object.base != null) {
            if (typeof object.base !== "object")
                throw TypeError(".s2c_GetRoomPmtInfo.base: object expected");
            message.base = $root.s2c_base.fromObject(object.base);
        }
        if (object.roomPmtInfo) {
            if (!Array.isArray(object.roomPmtInfo))
                throw TypeError(".s2c_GetRoomPmtInfo.roomPmtInfo: array expected");
            message.roomPmtInfo = [];
            for (var i = 0; i < object.roomPmtInfo.length; ++i) {
                if (typeof object.roomPmtInfo[i] !== "object")
                    throw TypeError(".s2c_GetRoomPmtInfo.roomPmtInfo: object expected");
                message.roomPmtInfo[i] = $root.room_pmt_info.fromObject(object.roomPmtInfo[i]);
            }
        }
        return message;
    };

    /**
     * Creates a plain object from a s2c_GetRoomPmtInfo message. Also converts values to other types if specified.
     * @function toObject
     * @memberof s2c_GetRoomPmtInfo
     * @static
     * @param {s2c_GetRoomPmtInfo} message s2c_GetRoomPmtInfo
     * @param {$protobuf.IConversionOptions} [options] Conversion options
     * @returns {Object.<string,*>} Plain object
     */
    s2c_GetRoomPmtInfo.toObject = function toObject(message, options) {
        if (!options)
            options = {};
        var object = {};
        if (options.arrays || options.defaults)
            object.roomPmtInfo = [];
        if (options.defaults)
            object.base = null;
        if (message.base != null && message.hasOwnProperty("base"))
            object.base = $root.s2c_base.toObject(message.base, options);
        if (message.roomPmtInfo && message.roomPmtInfo.length) {
            object.roomPmtInfo = [];
            for (var j = 0; j < message.roomPmtInfo.length; ++j)
                object.roomPmtInfo[j] = $root.room_pmt_info.toObject(message.roomPmtInfo[j], options);
        }
        return object;
    };

    /**
     * Converts this s2c_GetRoomPmtInfo to JSON.
     * @function toJSON
     * @memberof s2c_GetRoomPmtInfo
     * @instance
     * @returns {Object.<string,*>} JSON object
     */
    s2c_GetRoomPmtInfo.prototype.toJSON = function toJSON() {
        return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
    };

    /**
     * Gets the default type url for s2c_GetRoomPmtInfo
     * @function getTypeUrl
     * @memberof s2c_GetRoomPmtInfo
     * @static
     * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
     * @returns {string} The default type url
     */
    s2c_GetRoomPmtInfo.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
        if (typeUrlPrefix === undefined) {
            typeUrlPrefix = "type.googleapis.com";
        }
        return typeUrlPrefix + "/s2c_GetRoomPmtInfo";
    };

    return s2c_GetRoomPmtInfo;
})();

$root.s2c_UpdateRoomPmtInfo = (function() {

    /**
     * Properties of a s2c_UpdateRoomPmtInfo.
     * @exports Is2c_UpdateRoomPmtInfo
     * @interface Is2c_UpdateRoomPmtInfo
     * @property {Is2c_base|null} [base] s2c_UpdateRoomPmtInfo base
     * @property {Iroom_pmt_info|null} [roomPmtInfo] s2c_UpdateRoomPmtInfo roomPmtInfo
     */

    /**
     * Constructs a new s2c_UpdateRoomPmtInfo.
     * @exports s2c_UpdateRoomPmtInfo
     * @classdesc Represents a s2c_UpdateRoomPmtInfo.
     * @implements Is2c_UpdateRoomPmtInfo
     * @constructor
     * @param {Is2c_UpdateRoomPmtInfo=} [properties] Properties to set
     */
    function s2c_UpdateRoomPmtInfo(properties) {
        if (properties)
            for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
                if (properties[keys[i]] != null)
                    this[keys[i]] = properties[keys[i]];
    }

    /**
     * s2c_UpdateRoomPmtInfo base.
     * @member {Is2c_base|null|undefined} base
     * @memberof s2c_UpdateRoomPmtInfo
     * @instance
     */
    s2c_UpdateRoomPmtInfo.prototype.base = null;

    /**
     * s2c_UpdateRoomPmtInfo roomPmtInfo.
     * @member {Iroom_pmt_info|null|undefined} roomPmtInfo
     * @memberof s2c_UpdateRoomPmtInfo
     * @instance
     */
    s2c_UpdateRoomPmtInfo.prototype.roomPmtInfo = null;

    /**
     * Creates a new s2c_UpdateRoomPmtInfo instance using the specified properties.
     * @function create
     * @memberof s2c_UpdateRoomPmtInfo
     * @static
     * @param {Is2c_UpdateRoomPmtInfo=} [properties] Properties to set
     * @returns {s2c_UpdateRoomPmtInfo} s2c_UpdateRoomPmtInfo instance
     */
    s2c_UpdateRoomPmtInfo.create = function create(properties) {
        return new s2c_UpdateRoomPmtInfo(properties);
    };

    /**
     * Encodes the specified s2c_UpdateRoomPmtInfo message. Does not implicitly {@link s2c_UpdateRoomPmtInfo.verify|verify} messages.
     * @function encode
     * @memberof s2c_UpdateRoomPmtInfo
     * @static
     * @param {Is2c_UpdateRoomPmtInfo} message s2c_UpdateRoomPmtInfo message or plain object to encode
     * @param {$protobuf.Writer} [writer] Writer to encode to
     * @returns {$protobuf.Writer} Writer
     */
    s2c_UpdateRoomPmtInfo.encode = function encode(message, writer) {
        if (!writer)
            writer = $Writer.create();
        if (message.base != null && Object.hasOwnProperty.call(message, "base"))
            $root.s2c_base.encode(message.base, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();
        if (message.roomPmtInfo != null && Object.hasOwnProperty.call(message, "roomPmtInfo"))
            $root.room_pmt_info.encode(message.roomPmtInfo, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim();
        return writer;
    };

    /**
     * Encodes the specified s2c_UpdateRoomPmtInfo message, length delimited. Does not implicitly {@link s2c_UpdateRoomPmtInfo.verify|verify} messages.
     * @function encodeDelimited
     * @memberof s2c_UpdateRoomPmtInfo
     * @static
     * @param {Is2c_UpdateRoomPmtInfo} message s2c_UpdateRoomPmtInfo message or plain object to encode
     * @param {$protobuf.Writer} [writer] Writer to encode to
     * @returns {$protobuf.Writer} Writer
     */
    s2c_UpdateRoomPmtInfo.encodeDelimited = function encodeDelimited(message, writer) {
        return this.encode(message, writer).ldelim();
    };

    /**
     * Decodes a s2c_UpdateRoomPmtInfo message from the specified reader or buffer.
     * @function decode
     * @memberof s2c_UpdateRoomPmtInfo
     * @static
     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
     * @param {number} [length] Message length if known beforehand
     * @returns {s2c_UpdateRoomPmtInfo} s2c_UpdateRoomPmtInfo
     * @throws {Error} If the payload is not a reader or valid buffer
     * @throws {$protobuf.util.ProtocolError} If required fields are missing
     */
    s2c_UpdateRoomPmtInfo.decode = function decode(reader, length) {
        if (!(reader instanceof $Reader))
            reader = $Reader.create(reader);
        var end = length === undefined ? reader.len : reader.pos + length, message = new $root.s2c_UpdateRoomPmtInfo();
        while (reader.pos < end) {
            var tag = reader.uint32();
            switch (tag >>> 3) {
            case 1: {
                    message.base = $root.s2c_base.decode(reader, reader.uint32());
                    break;
                }
            case 3: {
                    message.roomPmtInfo = $root.room_pmt_info.decode(reader, reader.uint32());
                    break;
                }
            default:
                reader.skipType(tag & 7);
                break;
            }
        }
        return message;
    };

    /**
     * Decodes a s2c_UpdateRoomPmtInfo message from the specified reader or buffer, length delimited.
     * @function decodeDelimited
     * @memberof s2c_UpdateRoomPmtInfo
     * @static
     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
     * @returns {s2c_UpdateRoomPmtInfo} s2c_UpdateRoomPmtInfo
     * @throws {Error} If the payload is not a reader or valid buffer
     * @throws {$protobuf.util.ProtocolError} If required fields are missing
     */
    s2c_UpdateRoomPmtInfo.decodeDelimited = function decodeDelimited(reader) {
        if (!(reader instanceof $Reader))
            reader = new $Reader(reader);
        return this.decode(reader, reader.uint32());
    };

    /**
     * Verifies a s2c_UpdateRoomPmtInfo message.
     * @function verify
     * @memberof s2c_UpdateRoomPmtInfo
     * @static
     * @param {Object.<string,*>} message Plain object to verify
     * @returns {string|null} `null` if valid, otherwise the reason why it is not
     */
    s2c_UpdateRoomPmtInfo.verify = function verify(message) {
        if (typeof message !== "object" || message === null)
            return "object expected";
        if (message.base != null && message.hasOwnProperty("base")) {
            var error = $root.s2c_base.verify(message.base);
            if (error)
                return "base." + error;
        }
        if (message.roomPmtInfo != null && message.hasOwnProperty("roomPmtInfo")) {
            var error = $root.room_pmt_info.verify(message.roomPmtInfo);
            if (error)
                return "roomPmtInfo." + error;
        }
        return null;
    };

    /**
     * Creates a s2c_UpdateRoomPmtInfo message from a plain object. Also converts values to their respective internal types.
     * @function fromObject
     * @memberof s2c_UpdateRoomPmtInfo
     * @static
     * @param {Object.<string,*>} object Plain object
     * @returns {s2c_UpdateRoomPmtInfo} s2c_UpdateRoomPmtInfo
     */
    s2c_UpdateRoomPmtInfo.fromObject = function fromObject(object) {
        if (object instanceof $root.s2c_UpdateRoomPmtInfo)
            return object;
        var message = new $root.s2c_UpdateRoomPmtInfo();
        if (object.base != null) {
            if (typeof object.base !== "object")
                throw TypeError(".s2c_UpdateRoomPmtInfo.base: object expected");
            message.base = $root.s2c_base.fromObject(object.base);
        }
        if (object.roomPmtInfo != null) {
            if (typeof object.roomPmtInfo !== "object")
                throw TypeError(".s2c_UpdateRoomPmtInfo.roomPmtInfo: object expected");
            message.roomPmtInfo = $root.room_pmt_info.fromObject(object.roomPmtInfo);
        }
        return message;
    };

    /**
     * Creates a plain object from a s2c_UpdateRoomPmtInfo message. Also converts values to other types if specified.
     * @function toObject
     * @memberof s2c_UpdateRoomPmtInfo
     * @static
     * @param {s2c_UpdateRoomPmtInfo} message s2c_UpdateRoomPmtInfo
     * @param {$protobuf.IConversionOptions} [options] Conversion options
     * @returns {Object.<string,*>} Plain object
     */
    s2c_UpdateRoomPmtInfo.toObject = function toObject(message, options) {
        if (!options)
            options = {};
        var object = {};
        if (options.defaults) {
            object.base = null;
            object.roomPmtInfo = null;
        }
        if (message.base != null && message.hasOwnProperty("base"))
            object.base = $root.s2c_base.toObject(message.base, options);
        if (message.roomPmtInfo != null && message.hasOwnProperty("roomPmtInfo"))
            object.roomPmtInfo = $root.room_pmt_info.toObject(message.roomPmtInfo, options);
        return object;
    };

    /**
     * Converts this s2c_UpdateRoomPmtInfo to JSON.
     * @function toJSON
     * @memberof s2c_UpdateRoomPmtInfo
     * @instance
     * @returns {Object.<string,*>} JSON object
     */
    s2c_UpdateRoomPmtInfo.prototype.toJSON = function toJSON() {
        return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
    };

    /**
     * Gets the default type url for s2c_UpdateRoomPmtInfo
     * @function getTypeUrl
     * @memberof s2c_UpdateRoomPmtInfo
     * @static
     * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
     * @returns {string} The default type url
     */
    s2c_UpdateRoomPmtInfo.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
        if (typeUrlPrefix === undefined) {
            typeUrlPrefix = "type.googleapis.com";
        }
        return typeUrlPrefix + "/s2c_UpdateRoomPmtInfo";
    };

    return s2c_UpdateRoomPmtInfo;
})();

$root.c2s_UpRoomPmtLevel = (function() {

    /**
     * Properties of a c2s_UpRoomPmtLevel.
     * @exports Ic2s_UpRoomPmtLevel
     * @interface Ic2s_UpRoomPmtLevel
     * @property {number|null} [roomId] c2s_UpRoomPmtLevel roomId
     * @property {number|null} [pmtId] c2s_UpRoomPmtLevel pmtId
     */

    /**
     * Constructs a new c2s_UpRoomPmtLevel.
     * @exports c2s_UpRoomPmtLevel
     * @classdesc Represents a c2s_UpRoomPmtLevel.
     * @implements Ic2s_UpRoomPmtLevel
     * @constructor
     * @param {Ic2s_UpRoomPmtLevel=} [properties] Properties to set
     */
    function c2s_UpRoomPmtLevel(properties) {
        if (properties)
            for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
                if (properties[keys[i]] != null)
                    this[keys[i]] = properties[keys[i]];
    }

    /**
     * c2s_UpRoomPmtLevel roomId.
     * @member {number} roomId
     * @memberof c2s_UpRoomPmtLevel
     * @instance
     */
    c2s_UpRoomPmtLevel.prototype.roomId = 0;

    /**
     * c2s_UpRoomPmtLevel pmtId.
     * @member {number} pmtId
     * @memberof c2s_UpRoomPmtLevel
     * @instance
     */
    c2s_UpRoomPmtLevel.prototype.pmtId = 0;

    /**
     * Creates a new c2s_UpRoomPmtLevel instance using the specified properties.
     * @function create
     * @memberof c2s_UpRoomPmtLevel
     * @static
     * @param {Ic2s_UpRoomPmtLevel=} [properties] Properties to set
     * @returns {c2s_UpRoomPmtLevel} c2s_UpRoomPmtLevel instance
     */
    c2s_UpRoomPmtLevel.create = function create(properties) {
        return new c2s_UpRoomPmtLevel(properties);
    };

    /**
     * Encodes the specified c2s_UpRoomPmtLevel message. Does not implicitly {@link c2s_UpRoomPmtLevel.verify|verify} messages.
     * @function encode
     * @memberof c2s_UpRoomPmtLevel
     * @static
     * @param {Ic2s_UpRoomPmtLevel} message c2s_UpRoomPmtLevel message or plain object to encode
     * @param {$protobuf.Writer} [writer] Writer to encode to
     * @returns {$protobuf.Writer} Writer
     */
    c2s_UpRoomPmtLevel.encode = function encode(message, writer) {
        if (!writer)
            writer = $Writer.create();
        if (message.roomId != null && Object.hasOwnProperty.call(message, "roomId"))
            writer.uint32(/* id 1, wireType 0 =*/8).int32(message.roomId);
        if (message.pmtId != null && Object.hasOwnProperty.call(message, "pmtId"))
            writer.uint32(/* id 2, wireType 0 =*/16).int32(message.pmtId);
        return writer;
    };

    /**
     * Encodes the specified c2s_UpRoomPmtLevel message, length delimited. Does not implicitly {@link c2s_UpRoomPmtLevel.verify|verify} messages.
     * @function encodeDelimited
     * @memberof c2s_UpRoomPmtLevel
     * @static
     * @param {Ic2s_UpRoomPmtLevel} message c2s_UpRoomPmtLevel message or plain object to encode
     * @param {$protobuf.Writer} [writer] Writer to encode to
     * @returns {$protobuf.Writer} Writer
     */
    c2s_UpRoomPmtLevel.encodeDelimited = function encodeDelimited(message, writer) {
        return this.encode(message, writer).ldelim();
    };

    /**
     * Decodes a c2s_UpRoomPmtLevel message from the specified reader or buffer.
     * @function decode
     * @memberof c2s_UpRoomPmtLevel
     * @static
     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
     * @param {number} [length] Message length if known beforehand
     * @returns {c2s_UpRoomPmtLevel} c2s_UpRoomPmtLevel
     * @throws {Error} If the payload is not a reader or valid buffer
     * @throws {$protobuf.util.ProtocolError} If required fields are missing
     */
    c2s_UpRoomPmtLevel.decode = function decode(reader, length) {
        if (!(reader instanceof $Reader))
            reader = $Reader.create(reader);
        var end = length === undefined ? reader.len : reader.pos + length, message = new $root.c2s_UpRoomPmtLevel();
        while (reader.pos < end) {
            var tag = reader.uint32();
            switch (tag >>> 3) {
            case 1: {
                    message.roomId = reader.int32();
                    break;
                }
            case 2: {
                    message.pmtId = reader.int32();
                    break;
                }
            default:
                reader.skipType(tag & 7);
                break;
            }
        }
        return message;
    };

    /**
     * Decodes a c2s_UpRoomPmtLevel message from the specified reader or buffer, length delimited.
     * @function decodeDelimited
     * @memberof c2s_UpRoomPmtLevel
     * @static
     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
     * @returns {c2s_UpRoomPmtLevel} c2s_UpRoomPmtLevel
     * @throws {Error} If the payload is not a reader or valid buffer
     * @throws {$protobuf.util.ProtocolError} If required fields are missing
     */
    c2s_UpRoomPmtLevel.decodeDelimited = function decodeDelimited(reader) {
        if (!(reader instanceof $Reader))
            reader = new $Reader(reader);
        return this.decode(reader, reader.uint32());
    };

    /**
     * Verifies a c2s_UpRoomPmtLevel message.
     * @function verify
     * @memberof c2s_UpRoomPmtLevel
     * @static
     * @param {Object.<string,*>} message Plain object to verify
     * @returns {string|null} `null` if valid, otherwise the reason why it is not
     */
    c2s_UpRoomPmtLevel.verify = function verify(message) {
        if (typeof message !== "object" || message === null)
            return "object expected";
        if (message.roomId != null && message.hasOwnProperty("roomId"))
            if (!$util.isInteger(message.roomId))
                return "roomId: integer expected";
        if (message.pmtId != null && message.hasOwnProperty("pmtId"))
            if (!$util.isInteger(message.pmtId))
                return "pmtId: integer expected";
        return null;
    };

    /**
     * Creates a c2s_UpRoomPmtLevel message from a plain object. Also converts values to their respective internal types.
     * @function fromObject
     * @memberof c2s_UpRoomPmtLevel
     * @static
     * @param {Object.<string,*>} object Plain object
     * @returns {c2s_UpRoomPmtLevel} c2s_UpRoomPmtLevel
     */
    c2s_UpRoomPmtLevel.fromObject = function fromObject(object) {
        if (object instanceof $root.c2s_UpRoomPmtLevel)
            return object;
        var message = new $root.c2s_UpRoomPmtLevel();
        if (object.roomId != null)
            message.roomId = object.roomId | 0;
        if (object.pmtId != null)
            message.pmtId = object.pmtId | 0;
        return message;
    };

    /**
     * Creates a plain object from a c2s_UpRoomPmtLevel message. Also converts values to other types if specified.
     * @function toObject
     * @memberof c2s_UpRoomPmtLevel
     * @static
     * @param {c2s_UpRoomPmtLevel} message c2s_UpRoomPmtLevel
     * @param {$protobuf.IConversionOptions} [options] Conversion options
     * @returns {Object.<string,*>} Plain object
     */
    c2s_UpRoomPmtLevel.toObject = function toObject(message, options) {
        if (!options)
            options = {};
        var object = {};
        if (options.defaults) {
            object.roomId = 0;
            object.pmtId = 0;
        }
        if (message.roomId != null && message.hasOwnProperty("roomId"))
            object.roomId = message.roomId;
        if (message.pmtId != null && message.hasOwnProperty("pmtId"))
            object.pmtId = message.pmtId;
        return object;
    };

    /**
     * Converts this c2s_UpRoomPmtLevel to JSON.
     * @function toJSON
     * @memberof c2s_UpRoomPmtLevel
     * @instance
     * @returns {Object.<string,*>} JSON object
     */
    c2s_UpRoomPmtLevel.prototype.toJSON = function toJSON() {
        return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
    };

    /**
     * Gets the default type url for c2s_UpRoomPmtLevel
     * @function getTypeUrl
     * @memberof c2s_UpRoomPmtLevel
     * @static
     * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
     * @returns {string} The default type url
     */
    c2s_UpRoomPmtLevel.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
        if (typeUrlPrefix === undefined) {
            typeUrlPrefix = "type.googleapis.com";
        }
        return typeUrlPrefix + "/c2s_UpRoomPmtLevel";
    };

    return c2s_UpRoomPmtLevel;
})();

$root.s2c_UpRoomPmtLevel = (function() {

    /**
     * Properties of a s2c_UpRoomPmtLevel.
     * @exports Is2c_UpRoomPmtLevel
     * @interface Is2c_UpRoomPmtLevel
     * @property {Is2c_base|null} [base] s2c_UpRoomPmtLevel base
     * @property {Iroom_pmt_info|null} [roomPmtInfo] s2c_UpRoomPmtLevel roomPmtInfo
     */

    /**
     * Constructs a new s2c_UpRoomPmtLevel.
     * @exports s2c_UpRoomPmtLevel
     * @classdesc Represents a s2c_UpRoomPmtLevel.
     * @implements Is2c_UpRoomPmtLevel
     * @constructor
     * @param {Is2c_UpRoomPmtLevel=} [properties] Properties to set
     */
    function s2c_UpRoomPmtLevel(properties) {
        if (properties)
            for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
                if (properties[keys[i]] != null)
                    this[keys[i]] = properties[keys[i]];
    }

    /**
     * s2c_UpRoomPmtLevel base.
     * @member {Is2c_base|null|undefined} base
     * @memberof s2c_UpRoomPmtLevel
     * @instance
     */
    s2c_UpRoomPmtLevel.prototype.base = null;

    /**
     * s2c_UpRoomPmtLevel roomPmtInfo.
     * @member {Iroom_pmt_info|null|undefined} roomPmtInfo
     * @memberof s2c_UpRoomPmtLevel
     * @instance
     */
    s2c_UpRoomPmtLevel.prototype.roomPmtInfo = null;

    /**
     * Creates a new s2c_UpRoomPmtLevel instance using the specified properties.
     * @function create
     * @memberof s2c_UpRoomPmtLevel
     * @static
     * @param {Is2c_UpRoomPmtLevel=} [properties] Properties to set
     * @returns {s2c_UpRoomPmtLevel} s2c_UpRoomPmtLevel instance
     */
    s2c_UpRoomPmtLevel.create = function create(properties) {
        return new s2c_UpRoomPmtLevel(properties);
    };

    /**
     * Encodes the specified s2c_UpRoomPmtLevel message. Does not implicitly {@link s2c_UpRoomPmtLevel.verify|verify} messages.
     * @function encode
     * @memberof s2c_UpRoomPmtLevel
     * @static
     * @param {Is2c_UpRoomPmtLevel} message s2c_UpRoomPmtLevel message or plain object to encode
     * @param {$protobuf.Writer} [writer] Writer to encode to
     * @returns {$protobuf.Writer} Writer
     */
    s2c_UpRoomPmtLevel.encode = function encode(message, writer) {
        if (!writer)
            writer = $Writer.create();
        if (message.base != null && Object.hasOwnProperty.call(message, "base"))
            $root.s2c_base.encode(message.base, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();
        if (message.roomPmtInfo != null && Object.hasOwnProperty.call(message, "roomPmtInfo"))
            $root.room_pmt_info.encode(message.roomPmtInfo, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();
        return writer;
    };

    /**
     * Encodes the specified s2c_UpRoomPmtLevel message, length delimited. Does not implicitly {@link s2c_UpRoomPmtLevel.verify|verify} messages.
     * @function encodeDelimited
     * @memberof s2c_UpRoomPmtLevel
     * @static
     * @param {Is2c_UpRoomPmtLevel} message s2c_UpRoomPmtLevel message or plain object to encode
     * @param {$protobuf.Writer} [writer] Writer to encode to
     * @returns {$protobuf.Writer} Writer
     */
    s2c_UpRoomPmtLevel.encodeDelimited = function encodeDelimited(message, writer) {
        return this.encode(message, writer).ldelim();
    };

    /**
     * Decodes a s2c_UpRoomPmtLevel message from the specified reader or buffer.
     * @function decode
     * @memberof s2c_UpRoomPmtLevel
     * @static
     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
     * @param {number} [length] Message length if known beforehand
     * @returns {s2c_UpRoomPmtLevel} s2c_UpRoomPmtLevel
     * @throws {Error} If the payload is not a reader or valid buffer
     * @throws {$protobuf.util.ProtocolError} If required fields are missing
     */
    s2c_UpRoomPmtLevel.decode = function decode(reader, length) {
        if (!(reader instanceof $Reader))
            reader = $Reader.create(reader);
        var end = length === undefined ? reader.len : reader.pos + length, message = new $root.s2c_UpRoomPmtLevel();
        while (reader.pos < end) {
            var tag = reader.uint32();
            switch (tag >>> 3) {
            case 1: {
                    message.base = $root.s2c_base.decode(reader, reader.uint32());
                    break;
                }
            case 2: {
                    message.roomPmtInfo = $root.room_pmt_info.decode(reader, reader.uint32());
                    break;
                }
            default:
                reader.skipType(tag & 7);
                break;
            }
        }
        return message;
    };

    /**
     * Decodes a s2c_UpRoomPmtLevel message from the specified reader or buffer, length delimited.
     * @function decodeDelimited
     * @memberof s2c_UpRoomPmtLevel
     * @static
     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
     * @returns {s2c_UpRoomPmtLevel} s2c_UpRoomPmtLevel
     * @throws {Error} If the payload is not a reader or valid buffer
     * @throws {$protobuf.util.ProtocolError} If required fields are missing
     */
    s2c_UpRoomPmtLevel.decodeDelimited = function decodeDelimited(reader) {
        if (!(reader instanceof $Reader))
            reader = new $Reader(reader);
        return this.decode(reader, reader.uint32());
    };

    /**
     * Verifies a s2c_UpRoomPmtLevel message.
     * @function verify
     * @memberof s2c_UpRoomPmtLevel
     * @static
     * @param {Object.<string,*>} message Plain object to verify
     * @returns {string|null} `null` if valid, otherwise the reason why it is not
     */
    s2c_UpRoomPmtLevel.verify = function verify(message) {
        if (typeof message !== "object" || message === null)
            return "object expected";
        if (message.base != null && message.hasOwnProperty("base")) {
            var error = $root.s2c_base.verify(message.base);
            if (error)
                return "base." + error;
        }
        if (message.roomPmtInfo != null && message.hasOwnProperty("roomPmtInfo")) {
            var error = $root.room_pmt_info.verify(message.roomPmtInfo);
            if (error)
                return "roomPmtInfo." + error;
        }
        return null;
    };

    /**
     * Creates a s2c_UpRoomPmtLevel message from a plain object. Also converts values to their respective internal types.
     * @function fromObject
     * @memberof s2c_UpRoomPmtLevel
     * @static
     * @param {Object.<string,*>} object Plain object
     * @returns {s2c_UpRoomPmtLevel} s2c_UpRoomPmtLevel
     */
    s2c_UpRoomPmtLevel.fromObject = function fromObject(object) {
        if (object instanceof $root.s2c_UpRoomPmtLevel)
            return object;
        var message = new $root.s2c_UpRoomPmtLevel();
        if (object.base != null) {
            if (typeof object.base !== "object")
                throw TypeError(".s2c_UpRoomPmtLevel.base: object expected");
            message.base = $root.s2c_base.fromObject(object.base);
        }
        if (object.roomPmtInfo != null) {
            if (typeof object.roomPmtInfo !== "object")
                throw TypeError(".s2c_UpRoomPmtLevel.roomPmtInfo: object expected");
            message.roomPmtInfo = $root.room_pmt_info.fromObject(object.roomPmtInfo);
        }
        return message;
    };

    /**
     * Creates a plain object from a s2c_UpRoomPmtLevel message. Also converts values to other types if specified.
     * @function toObject
     * @memberof s2c_UpRoomPmtLevel
     * @static
     * @param {s2c_UpRoomPmtLevel} message s2c_UpRoomPmtLevel
     * @param {$protobuf.IConversionOptions} [options] Conversion options
     * @returns {Object.<string,*>} Plain object
     */
    s2c_UpRoomPmtLevel.toObject = function toObject(message, options) {
        if (!options)
            options = {};
        var object = {};
        if (options.defaults) {
            object.base = null;
            object.roomPmtInfo = null;
        }
        if (message.base != null && message.hasOwnProperty("base"))
            object.base = $root.s2c_base.toObject(message.base, options);
        if (message.roomPmtInfo != null && message.hasOwnProperty("roomPmtInfo"))
            object.roomPmtInfo = $root.room_pmt_info.toObject(message.roomPmtInfo, options);
        return object;
    };

    /**
     * Converts this s2c_UpRoomPmtLevel to JSON.
     * @function toJSON
     * @memberof s2c_UpRoomPmtLevel
     * @instance
     * @returns {Object.<string,*>} JSON object
     */
    s2c_UpRoomPmtLevel.prototype.toJSON = function toJSON() {
        return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
    };

    /**
     * Gets the default type url for s2c_UpRoomPmtLevel
     * @function getTypeUrl
     * @memberof s2c_UpRoomPmtLevel
     * @static
     * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
     * @returns {string} The default type url
     */
    s2c_UpRoomPmtLevel.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
        if (typeUrlPrefix === undefined) {
            typeUrlPrefix = "type.googleapis.com";
        }
        return typeUrlPrefix + "/s2c_UpRoomPmtLevel";
    };

    return s2c_UpRoomPmtLevel;
})();

$root.c2s_UpRoomCyLevel = (function() {

    /**
     * Properties of a c2s_UpRoomCyLevel.
     * @exports Ic2s_UpRoomCyLevel
     * @interface Ic2s_UpRoomCyLevel
     * @property {number|null} [roomId] c2s_UpRoomCyLevel roomId
     */

    /**
     * Constructs a new c2s_UpRoomCyLevel.
     * @exports c2s_UpRoomCyLevel
     * @classdesc Represents a c2s_UpRoomCyLevel.
     * @implements Ic2s_UpRoomCyLevel
     * @constructor
     * @param {Ic2s_UpRoomCyLevel=} [properties] Properties to set
     */
    function c2s_UpRoomCyLevel(properties) {
        if (properties)
            for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
                if (properties[keys[i]] != null)
                    this[keys[i]] = properties[keys[i]];
    }

    /**
     * c2s_UpRoomCyLevel roomId.
     * @member {number} roomId
     * @memberof c2s_UpRoomCyLevel
     * @instance
     */
    c2s_UpRoomCyLevel.prototype.roomId = 0;

    /**
     * Creates a new c2s_UpRoomCyLevel instance using the specified properties.
     * @function create
     * @memberof c2s_UpRoomCyLevel
     * @static
     * @param {Ic2s_UpRoomCyLevel=} [properties] Properties to set
     * @returns {c2s_UpRoomCyLevel} c2s_UpRoomCyLevel instance
     */
    c2s_UpRoomCyLevel.create = function create(properties) {
        return new c2s_UpRoomCyLevel(properties);
    };

    /**
     * Encodes the specified c2s_UpRoomCyLevel message. Does not implicitly {@link c2s_UpRoomCyLevel.verify|verify} messages.
     * @function encode
     * @memberof c2s_UpRoomCyLevel
     * @static
     * @param {Ic2s_UpRoomCyLevel} message c2s_UpRoomCyLevel message or plain object to encode
     * @param {$protobuf.Writer} [writer] Writer to encode to
     * @returns {$protobuf.Writer} Writer
     */
    c2s_UpRoomCyLevel.encode = function encode(message, writer) {
        if (!writer)
            writer = $Writer.create();
        if (message.roomId != null && Object.hasOwnProperty.call(message, "roomId"))
            writer.uint32(/* id 1, wireType 0 =*/8).int32(message.roomId);
        return writer;
    };

    /**
     * Encodes the specified c2s_UpRoomCyLevel message, length delimited. Does not implicitly {@link c2s_UpRoomCyLevel.verify|verify} messages.
     * @function encodeDelimited
     * @memberof c2s_UpRoomCyLevel
     * @static
     * @param {Ic2s_UpRoomCyLevel} message c2s_UpRoomCyLevel message or plain object to encode
     * @param {$protobuf.Writer} [writer] Writer to encode to
     * @returns {$protobuf.Writer} Writer
     */
    c2s_UpRoomCyLevel.encodeDelimited = function encodeDelimited(message, writer) {
        return this.encode(message, writer).ldelim();
    };

    /**
     * Decodes a c2s_UpRoomCyLevel message from the specified reader or buffer.
     * @function decode
     * @memberof c2s_UpRoomCyLevel
     * @static
     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
     * @param {number} [length] Message length if known beforehand
     * @returns {c2s_UpRoomCyLevel} c2s_UpRoomCyLevel
     * @throws {Error} If the payload is not a reader or valid buffer
     * @throws {$protobuf.util.ProtocolError} If required fields are missing
     */
    c2s_UpRoomCyLevel.decode = function decode(reader, length) {
        if (!(reader instanceof $Reader))
            reader = $Reader.create(reader);
        var end = length === undefined ? reader.len : reader.pos + length, message = new $root.c2s_UpRoomCyLevel();
        while (reader.pos < end) {
            var tag = reader.uint32();
            switch (tag >>> 3) {
            case 1: {
                    message.roomId = reader.int32();
                    break;
                }
            default:
                reader.skipType(tag & 7);
                break;
            }
        }
        return message;
    };

    /**
     * Decodes a c2s_UpRoomCyLevel message from the specified reader or buffer, length delimited.
     * @function decodeDelimited
     * @memberof c2s_UpRoomCyLevel
     * @static
     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
     * @returns {c2s_UpRoomCyLevel} c2s_UpRoomCyLevel
     * @throws {Error} If the payload is not a reader or valid buffer
     * @throws {$protobuf.util.ProtocolError} If required fields are missing
     */
    c2s_UpRoomCyLevel.decodeDelimited = function decodeDelimited(reader) {
        if (!(reader instanceof $Reader))
            reader = new $Reader(reader);
        return this.decode(reader, reader.uint32());
    };

    /**
     * Verifies a c2s_UpRoomCyLevel message.
     * @function verify
     * @memberof c2s_UpRoomCyLevel
     * @static
     * @param {Object.<string,*>} message Plain object to verify
     * @returns {string|null} `null` if valid, otherwise the reason why it is not
     */
    c2s_UpRoomCyLevel.verify = function verify(message) {
        if (typeof message !== "object" || message === null)
            return "object expected";
        if (message.roomId != null && message.hasOwnProperty("roomId"))
            if (!$util.isInteger(message.roomId))
                return "roomId: integer expected";
        return null;
    };

    /**
     * Creates a c2s_UpRoomCyLevel message from a plain object. Also converts values to their respective internal types.
     * @function fromObject
     * @memberof c2s_UpRoomCyLevel
     * @static
     * @param {Object.<string,*>} object Plain object
     * @returns {c2s_UpRoomCyLevel} c2s_UpRoomCyLevel
     */
    c2s_UpRoomCyLevel.fromObject = function fromObject(object) {
        if (object instanceof $root.c2s_UpRoomCyLevel)
            return object;
        var message = new $root.c2s_UpRoomCyLevel();
        if (object.roomId != null)
            message.roomId = object.roomId | 0;
        return message;
    };

    /**
     * Creates a plain object from a c2s_UpRoomCyLevel message. Also converts values to other types if specified.
     * @function toObject
     * @memberof c2s_UpRoomCyLevel
     * @static
     * @param {c2s_UpRoomCyLevel} message c2s_UpRoomCyLevel
     * @param {$protobuf.IConversionOptions} [options] Conversion options
     * @returns {Object.<string,*>} Plain object
     */
    c2s_UpRoomCyLevel.toObject = function toObject(message, options) {
        if (!options)
            options = {};
        var object = {};
        if (options.defaults)
            object.roomId = 0;
        if (message.roomId != null && message.hasOwnProperty("roomId"))
            object.roomId = message.roomId;
        return object;
    };

    /**
     * Converts this c2s_UpRoomCyLevel to JSON.
     * @function toJSON
     * @memberof c2s_UpRoomCyLevel
     * @instance
     * @returns {Object.<string,*>} JSON object
     */
    c2s_UpRoomCyLevel.prototype.toJSON = function toJSON() {
        return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
    };

    /**
     * Gets the default type url for c2s_UpRoomCyLevel
     * @function getTypeUrl
     * @memberof c2s_UpRoomCyLevel
     * @static
     * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
     * @returns {string} The default type url
     */
    c2s_UpRoomCyLevel.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
        if (typeUrlPrefix === undefined) {
            typeUrlPrefix = "type.googleapis.com";
        }
        return typeUrlPrefix + "/c2s_UpRoomCyLevel";
    };

    return c2s_UpRoomCyLevel;
})();

$root.s2c_UpRoomCyLevel = (function() {

    /**
     * Properties of a s2c_UpRoomCyLevel.
     * @exports Is2c_UpRoomCyLevel
     * @interface Is2c_UpRoomCyLevel
     * @property {Is2c_base|null} [base] s2c_UpRoomCyLevel base
     * @property {Array.<Iroom_pmt_info>|null} [roomPmtInfo] s2c_UpRoomCyLevel roomPmtInfo
     */

    /**
     * Constructs a new s2c_UpRoomCyLevel.
     * @exports s2c_UpRoomCyLevel
     * @classdesc Represents a s2c_UpRoomCyLevel.
     * @implements Is2c_UpRoomCyLevel
     * @constructor
     * @param {Is2c_UpRoomCyLevel=} [properties] Properties to set
     */
    function s2c_UpRoomCyLevel(properties) {
        this.roomPmtInfo = [];
        if (properties)
            for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
                if (properties[keys[i]] != null)
                    this[keys[i]] = properties[keys[i]];
    }

    /**
     * s2c_UpRoomCyLevel base.
     * @member {Is2c_base|null|undefined} base
     * @memberof s2c_UpRoomCyLevel
     * @instance
     */
    s2c_UpRoomCyLevel.prototype.base = null;

    /**
     * s2c_UpRoomCyLevel roomPmtInfo.
     * @member {Array.<Iroom_pmt_info>} roomPmtInfo
     * @memberof s2c_UpRoomCyLevel
     * @instance
     */
    s2c_UpRoomCyLevel.prototype.roomPmtInfo = $util.emptyArray;

    /**
     * Creates a new s2c_UpRoomCyLevel instance using the specified properties.
     * @function create
     * @memberof s2c_UpRoomCyLevel
     * @static
     * @param {Is2c_UpRoomCyLevel=} [properties] Properties to set
     * @returns {s2c_UpRoomCyLevel} s2c_UpRoomCyLevel instance
     */
    s2c_UpRoomCyLevel.create = function create(properties) {
        return new s2c_UpRoomCyLevel(properties);
    };

    /**
     * Encodes the specified s2c_UpRoomCyLevel message. Does not implicitly {@link s2c_UpRoomCyLevel.verify|verify} messages.
     * @function encode
     * @memberof s2c_UpRoomCyLevel
     * @static
     * @param {Is2c_UpRoomCyLevel} message s2c_UpRoomCyLevel message or plain object to encode
     * @param {$protobuf.Writer} [writer] Writer to encode to
     * @returns {$protobuf.Writer} Writer
     */
    s2c_UpRoomCyLevel.encode = function encode(message, writer) {
        if (!writer)
            writer = $Writer.create();
        if (message.base != null && Object.hasOwnProperty.call(message, "base"))
            $root.s2c_base.encode(message.base, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();
        if (message.roomPmtInfo != null && message.roomPmtInfo.length)
            for (var i = 0; i < message.roomPmtInfo.length; ++i)
                $root.room_pmt_info.encode(message.roomPmtInfo[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();
        return writer;
    };

    /**
     * Encodes the specified s2c_UpRoomCyLevel message, length delimited. Does not implicitly {@link s2c_UpRoomCyLevel.verify|verify} messages.
     * @function encodeDelimited
     * @memberof s2c_UpRoomCyLevel
     * @static
     * @param {Is2c_UpRoomCyLevel} message s2c_UpRoomCyLevel message or plain object to encode
     * @param {$protobuf.Writer} [writer] Writer to encode to
     * @returns {$protobuf.Writer} Writer
     */
    s2c_UpRoomCyLevel.encodeDelimited = function encodeDelimited(message, writer) {
        return this.encode(message, writer).ldelim();
    };

    /**
     * Decodes a s2c_UpRoomCyLevel message from the specified reader or buffer.
     * @function decode
     * @memberof s2c_UpRoomCyLevel
     * @static
     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
     * @param {number} [length] Message length if known beforehand
     * @returns {s2c_UpRoomCyLevel} s2c_UpRoomCyLevel
     * @throws {Error} If the payload is not a reader or valid buffer
     * @throws {$protobuf.util.ProtocolError} If required fields are missing
     */
    s2c_UpRoomCyLevel.decode = function decode(reader, length) {
        if (!(reader instanceof $Reader))
            reader = $Reader.create(reader);
        var end = length === undefined ? reader.len : reader.pos + length, message = new $root.s2c_UpRoomCyLevel();
        while (reader.pos < end) {
            var tag = reader.uint32();
            switch (tag >>> 3) {
            case 1: {
                    message.base = $root.s2c_base.decode(reader, reader.uint32());
                    break;
                }
            case 2: {
                    if (!(message.roomPmtInfo && message.roomPmtInfo.length))
                        message.roomPmtInfo = [];
                    message.roomPmtInfo.push($root.room_pmt_info.decode(reader, reader.uint32()));
                    break;
                }
            default:
                reader.skipType(tag & 7);
                break;
            }
        }
        return message;
    };

    /**
     * Decodes a s2c_UpRoomCyLevel message from the specified reader or buffer, length delimited.
     * @function decodeDelimited
     * @memberof s2c_UpRoomCyLevel
     * @static
     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
     * @returns {s2c_UpRoomCyLevel} s2c_UpRoomCyLevel
     * @throws {Error} If the payload is not a reader or valid buffer
     * @throws {$protobuf.util.ProtocolError} If required fields are missing
     */
    s2c_UpRoomCyLevel.decodeDelimited = function decodeDelimited(reader) {
        if (!(reader instanceof $Reader))
            reader = new $Reader(reader);
        return this.decode(reader, reader.uint32());
    };

    /**
     * Verifies a s2c_UpRoomCyLevel message.
     * @function verify
     * @memberof s2c_UpRoomCyLevel
     * @static
     * @param {Object.<string,*>} message Plain object to verify
     * @returns {string|null} `null` if valid, otherwise the reason why it is not
     */
    s2c_UpRoomCyLevel.verify = function verify(message) {
        if (typeof message !== "object" || message === null)
            return "object expected";
        if (message.base != null && message.hasOwnProperty("base")) {
            var error = $root.s2c_base.verify(message.base);
            if (error)
                return "base." + error;
        }
        if (message.roomPmtInfo != null && message.hasOwnProperty("roomPmtInfo")) {
            if (!Array.isArray(message.roomPmtInfo))
                return "roomPmtInfo: array expected";
            for (var i = 0; i < message.roomPmtInfo.length; ++i) {
                var error = $root.room_pmt_info.verify(message.roomPmtInfo[i]);
                if (error)
                    return "roomPmtInfo." + error;
            }
        }
        return null;
    };

    /**
     * Creates a s2c_UpRoomCyLevel message from a plain object. Also converts values to their respective internal types.
     * @function fromObject
     * @memberof s2c_UpRoomCyLevel
     * @static
     * @param {Object.<string,*>} object Plain object
     * @returns {s2c_UpRoomCyLevel} s2c_UpRoomCyLevel
     */
    s2c_UpRoomCyLevel.fromObject = function fromObject(object) {
        if (object instanceof $root.s2c_UpRoomCyLevel)
            return object;
        var message = new $root.s2c_UpRoomCyLevel();
        if (object.base != null) {
            if (typeof object.base !== "object")
                throw TypeError(".s2c_UpRoomCyLevel.base: object expected");
            message.base = $root.s2c_base.fromObject(object.base);
        }
        if (object.roomPmtInfo) {
            if (!Array.isArray(object.roomPmtInfo))
                throw TypeError(".s2c_UpRoomCyLevel.roomPmtInfo: array expected");
            message.roomPmtInfo = [];
            for (var i = 0; i < object.roomPmtInfo.length; ++i) {
                if (typeof object.roomPmtInfo[i] !== "object")
                    throw TypeError(".s2c_UpRoomCyLevel.roomPmtInfo: object expected");
                message.roomPmtInfo[i] = $root.room_pmt_info.fromObject(object.roomPmtInfo[i]);
            }
        }
        return message;
    };

    /**
     * Creates a plain object from a s2c_UpRoomCyLevel message. Also converts values to other types if specified.
     * @function toObject
     * @memberof s2c_UpRoomCyLevel
     * @static
     * @param {s2c_UpRoomCyLevel} message s2c_UpRoomCyLevel
     * @param {$protobuf.IConversionOptions} [options] Conversion options
     * @returns {Object.<string,*>} Plain object
     */
    s2c_UpRoomCyLevel.toObject = function toObject(message, options) {
        if (!options)
            options = {};
        var object = {};
        if (options.arrays || options.defaults)
            object.roomPmtInfo = [];
        if (options.defaults)
            object.base = null;
        if (message.base != null && message.hasOwnProperty("base"))
            object.base = $root.s2c_base.toObject(message.base, options);
        if (message.roomPmtInfo && message.roomPmtInfo.length) {
            object.roomPmtInfo = [];
            for (var j = 0; j < message.roomPmtInfo.length; ++j)
                object.roomPmtInfo[j] = $root.room_pmt_info.toObject(message.roomPmtInfo[j], options);
        }
        return object;
    };

    /**
     * Converts this s2c_UpRoomCyLevel to JSON.
     * @function toJSON
     * @memberof s2c_UpRoomCyLevel
     * @instance
     * @returns {Object.<string,*>} JSON object
     */
    s2c_UpRoomCyLevel.prototype.toJSON = function toJSON() {
        return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
    };

    /**
     * Gets the default type url for s2c_UpRoomCyLevel
     * @function getTypeUrl
     * @memberof s2c_UpRoomCyLevel
     * @static
     * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
     * @returns {string} The default type url
     */
    s2c_UpRoomCyLevel.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
        if (typeUrlPrefix === undefined) {
            typeUrlPrefix = "type.googleapis.com";
        }
        return typeUrlPrefix + "/s2c_UpRoomCyLevel";
    };

    return s2c_UpRoomCyLevel;
})();

$root.c2s_ActiveRoom = (function() {

    /**
     * Properties of a c2s_ActiveRoom.
     * @exports Ic2s_ActiveRoom
     * @interface Ic2s_ActiveRoom
     * @property {number|null} [roomId] c2s_ActiveRoom roomId
     */

    /**
     * Constructs a new c2s_ActiveRoom.
     * @exports c2s_ActiveRoom
     * @classdesc Represents a c2s_ActiveRoom.
     * @implements Ic2s_ActiveRoom
     * @constructor
     * @param {Ic2s_ActiveRoom=} [properties] Properties to set
     */
    function c2s_ActiveRoom(properties) {
        if (properties)
            for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
                if (properties[keys[i]] != null)
                    this[keys[i]] = properties[keys[i]];
    }

    /**
     * c2s_ActiveRoom roomId.
     * @member {number} roomId
     * @memberof c2s_ActiveRoom
     * @instance
     */
    c2s_ActiveRoom.prototype.roomId = 0;

    /**
     * Creates a new c2s_ActiveRoom instance using the specified properties.
     * @function create
     * @memberof c2s_ActiveRoom
     * @static
     * @param {Ic2s_ActiveRoom=} [properties] Properties to set
     * @returns {c2s_ActiveRoom} c2s_ActiveRoom instance
     */
    c2s_ActiveRoom.create = function create(properties) {
        return new c2s_ActiveRoom(properties);
    };

    /**
     * Encodes the specified c2s_ActiveRoom message. Does not implicitly {@link c2s_ActiveRoom.verify|verify} messages.
     * @function encode
     * @memberof c2s_ActiveRoom
     * @static
     * @param {Ic2s_ActiveRoom} message c2s_ActiveRoom message or plain object to encode
     * @param {$protobuf.Writer} [writer] Writer to encode to
     * @returns {$protobuf.Writer} Writer
     */
    c2s_ActiveRoom.encode = function encode(message, writer) {
        if (!writer)
            writer = $Writer.create();
        if (message.roomId != null && Object.hasOwnProperty.call(message, "roomId"))
            writer.uint32(/* id 1, wireType 0 =*/8).int32(message.roomId);
        return writer;
    };

    /**
     * Encodes the specified c2s_ActiveRoom message, length delimited. Does not implicitly {@link c2s_ActiveRoom.verify|verify} messages.
     * @function encodeDelimited
     * @memberof c2s_ActiveRoom
     * @static
     * @param {Ic2s_ActiveRoom} message c2s_ActiveRoom message or plain object to encode
     * @param {$protobuf.Writer} [writer] Writer to encode to
     * @returns {$protobuf.Writer} Writer
     */
    c2s_ActiveRoom.encodeDelimited = function encodeDelimited(message, writer) {
        return this.encode(message, writer).ldelim();
    };

    /**
     * Decodes a c2s_ActiveRoom message from the specified reader or buffer.
     * @function decode
     * @memberof c2s_ActiveRoom
     * @static
     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
     * @param {number} [length] Message length if known beforehand
     * @returns {c2s_ActiveRoom} c2s_ActiveRoom
     * @throws {Error} If the payload is not a reader or valid buffer
     * @throws {$protobuf.util.ProtocolError} If required fields are missing
     */
    c2s_ActiveRoom.decode = function decode(reader, length) {
        if (!(reader instanceof $Reader))
            reader = $Reader.create(reader);
        var end = length === undefined ? reader.len : reader.pos + length, message = new $root.c2s_ActiveRoom();
        while (reader.pos < end) {
            var tag = reader.uint32();
            switch (tag >>> 3) {
            case 1: {
                    message.roomId = reader.int32();
                    break;
                }
            default:
                reader.skipType(tag & 7);
                break;
            }
        }
        return message;
    };

    /**
     * Decodes a c2s_ActiveRoom message from the specified reader or buffer, length delimited.
     * @function decodeDelimited
     * @memberof c2s_ActiveRoom
     * @static
     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
     * @returns {c2s_ActiveRoom} c2s_ActiveRoom
     * @throws {Error} If the payload is not a reader or valid buffer
     * @throws {$protobuf.util.ProtocolError} If required fields are missing
     */
    c2s_ActiveRoom.decodeDelimited = function decodeDelimited(reader) {
        if (!(reader instanceof $Reader))
            reader = new $Reader(reader);
        return this.decode(reader, reader.uint32());
    };

    /**
     * Verifies a c2s_ActiveRoom message.
     * @function verify
     * @memberof c2s_ActiveRoom
     * @static
     * @param {Object.<string,*>} message Plain object to verify
     * @returns {string|null} `null` if valid, otherwise the reason why it is not
     */
    c2s_ActiveRoom.verify = function verify(message) {
        if (typeof message !== "object" || message === null)
            return "object expected";
        if (message.roomId != null && message.hasOwnProperty("roomId"))
            if (!$util.isInteger(message.roomId))
                return "roomId: integer expected";
        return null;
    };

    /**
     * Creates a c2s_ActiveRoom message from a plain object. Also converts values to their respective internal types.
     * @function fromObject
     * @memberof c2s_ActiveRoom
     * @static
     * @param {Object.<string,*>} object Plain object
     * @returns {c2s_ActiveRoom} c2s_ActiveRoom
     */
    c2s_ActiveRoom.fromObject = function fromObject(object) {
        if (object instanceof $root.c2s_ActiveRoom)
            return object;
        var message = new $root.c2s_ActiveRoom();
        if (object.roomId != null)
            message.roomId = object.roomId | 0;
        return message;
    };

    /**
     * Creates a plain object from a c2s_ActiveRoom message. Also converts values to other types if specified.
     * @function toObject
     * @memberof c2s_ActiveRoom
     * @static
     * @param {c2s_ActiveRoom} message c2s_ActiveRoom
     * @param {$protobuf.IConversionOptions} [options] Conversion options
     * @returns {Object.<string,*>} Plain object
     */
    c2s_ActiveRoom.toObject = function toObject(message, options) {
        if (!options)
            options = {};
        var object = {};
        if (options.defaults)
            object.roomId = 0;
        if (message.roomId != null && message.hasOwnProperty("roomId"))
            object.roomId = message.roomId;
        return object;
    };

    /**
     * Converts this c2s_ActiveRoom to JSON.
     * @function toJSON
     * @memberof c2s_ActiveRoom
     * @instance
     * @returns {Object.<string,*>} JSON object
     */
    c2s_ActiveRoom.prototype.toJSON = function toJSON() {
        return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
    };

    /**
     * Gets the default type url for c2s_ActiveRoom
     * @function getTypeUrl
     * @memberof c2s_ActiveRoom
     * @static
     * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
     * @returns {string} The default type url
     */
    c2s_ActiveRoom.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
        if (typeUrlPrefix === undefined) {
            typeUrlPrefix = "type.googleapis.com";
        }
        return typeUrlPrefix + "/c2s_ActiveRoom";
    };

    return c2s_ActiveRoom;
})();

$root.s2c_ActiveRoom = (function() {

    /**
     * Properties of a s2c_ActiveRoom.
     * @exports Is2c_ActiveRoom
     * @interface Is2c_ActiveRoom
     * @property {Is2c_base|null} [base] s2c_ActiveRoom base
     * @property {Iroom_info|null} [roomInfo] s2c_ActiveRoom roomInfo
     */

    /**
     * Constructs a new s2c_ActiveRoom.
     * @exports s2c_ActiveRoom
     * @classdesc Represents a s2c_ActiveRoom.
     * @implements Is2c_ActiveRoom
     * @constructor
     * @param {Is2c_ActiveRoom=} [properties] Properties to set
     */
    function s2c_ActiveRoom(properties) {
        if (properties)
            for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
                if (properties[keys[i]] != null)
                    this[keys[i]] = properties[keys[i]];
    }

    /**
     * s2c_ActiveRoom base.
     * @member {Is2c_base|null|undefined} base
     * @memberof s2c_ActiveRoom
     * @instance
     */
    s2c_ActiveRoom.prototype.base = null;

    /**
     * s2c_ActiveRoom roomInfo.
     * @member {Iroom_info|null|undefined} roomInfo
     * @memberof s2c_ActiveRoom
     * @instance
     */
    s2c_ActiveRoom.prototype.roomInfo = null;

    /**
     * Creates a new s2c_ActiveRoom instance using the specified properties.
     * @function create
     * @memberof s2c_ActiveRoom
     * @static
     * @param {Is2c_ActiveRoom=} [properties] Properties to set
     * @returns {s2c_ActiveRoom} s2c_ActiveRoom instance
     */
    s2c_ActiveRoom.create = function create(properties) {
        return new s2c_ActiveRoom(properties);
    };

    /**
     * Encodes the specified s2c_ActiveRoom message. Does not implicitly {@link s2c_ActiveRoom.verify|verify} messages.
     * @function encode
     * @memberof s2c_ActiveRoom
     * @static
     * @param {Is2c_ActiveRoom} message s2c_ActiveRoom message or plain object to encode
     * @param {$protobuf.Writer} [writer] Writer to encode to
     * @returns {$protobuf.Writer} Writer
     */
    s2c_ActiveRoom.encode = function encode(message, writer) {
        if (!writer)
            writer = $Writer.create();
        if (message.base != null && Object.hasOwnProperty.call(message, "base"))
            $root.s2c_base.encode(message.base, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();
        if (message.roomInfo != null && Object.hasOwnProperty.call(message, "roomInfo"))
            $root.room_info.encode(message.roomInfo, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();
        return writer;
    };

    /**
     * Encodes the specified s2c_ActiveRoom message, length delimited. Does not implicitly {@link s2c_ActiveRoom.verify|verify} messages.
     * @function encodeDelimited
     * @memberof s2c_ActiveRoom
     * @static
     * @param {Is2c_ActiveRoom} message s2c_ActiveRoom message or plain object to encode
     * @param {$protobuf.Writer} [writer] Writer to encode to
     * @returns {$protobuf.Writer} Writer
     */
    s2c_ActiveRoom.encodeDelimited = function encodeDelimited(message, writer) {
        return this.encode(message, writer).ldelim();
    };

    /**
     * Decodes a s2c_ActiveRoom message from the specified reader or buffer.
     * @function decode
     * @memberof s2c_ActiveRoom
     * @static
     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
     * @param {number} [length] Message length if known beforehand
     * @returns {s2c_ActiveRoom} s2c_ActiveRoom
     * @throws {Error} If the payload is not a reader or valid buffer
     * @throws {$protobuf.util.ProtocolError} If required fields are missing
     */
    s2c_ActiveRoom.decode = function decode(reader, length) {
        if (!(reader instanceof $Reader))
            reader = $Reader.create(reader);
        var end = length === undefined ? reader.len : reader.pos + length, message = new $root.s2c_ActiveRoom();
        while (reader.pos < end) {
            var tag = reader.uint32();
            switch (tag >>> 3) {
            case 1: {
                    message.base = $root.s2c_base.decode(reader, reader.uint32());
                    break;
                }
            case 2: {
                    message.roomInfo = $root.room_info.decode(reader, reader.uint32());
                    break;
                }
            default:
                reader.skipType(tag & 7);
                break;
            }
        }
        return message;
    };

    /**
     * Decodes a s2c_ActiveRoom message from the specified reader or buffer, length delimited.
     * @function decodeDelimited
     * @memberof s2c_ActiveRoom
     * @static
     * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
     * @returns {s2c_ActiveRoom} s2c_ActiveRoom
     * @throws {Error} If the payload is not a reader or valid buffer
     * @throws {$protobuf.util.ProtocolError} If required fields are missing
     */
    s2c_ActiveRoom.decodeDelimited = function decodeDelimited(reader) {
        if (!(reader instanceof $Reader))
            reader = new $Reader(reader);
        return this.decode(reader, reader.uint32());
    };

    /**
     * Verifies a s2c_ActiveRoom message.
     * @function verify
     * @memberof s2c_ActiveRoom
     * @static
     * @param {Object.<string,*>} message Plain object to verify
     * @returns {string|null} `null` if valid, otherwise the reason why it is not
     */
    s2c_ActiveRoom.verify = function verify(message) {
        if (typeof message !== "object" || message === null)
            return "object expected";
        if (message.base != null && message.hasOwnProperty("base")) {
            var error = $root.s2c_base.verify(message.base);
            if (error)
                return "base." + error;
        }
        if (message.roomInfo != null && message.hasOwnProperty("roomInfo")) {
            var error = $root.room_info.verify(message.roomInfo);
            if (error)
                return "roomInfo." + error;
        }
        return null;
    };

    /**
     * Creates a s2c_ActiveRoom message from a plain object. Also converts values to their respective internal types.
     * @function fromObject
     * @memberof s2c_ActiveRoom
     * @static
     * @param {Object.<string,*>} object Plain object
     * @returns {s2c_ActiveRoom} s2c_ActiveRoom
     */
    s2c_ActiveRoom.fromObject = function fromObject(object) {
        if (object instanceof $root.s2c_ActiveRoom)
            return object;
        var message = new $root.s2c_ActiveRoom();
        if (object.base != null) {
            if (typeof object.base !== "object")
                throw TypeError(".s2c_ActiveRoom.base: object expected");
            message.base = $root.s2c_base.fromObject(object.base);
        }
        if (object.roomInfo != null) {
            if (typeof object.roomInfo !== "object")
                throw TypeError(".s2c_ActiveRoom.roomInfo: object expected");
            message.roomInfo = $root.room_info.fromObject(object.roomInfo);
        }
        return message;
    };

    /**
     * Creates a plain object from a s2c_ActiveRoom message. Also converts values to other types if specified.
     * @function toObject
     * @memberof s2c_ActiveRoom
     * @static
     * @param {s2c_ActiveRoom} message s2c_ActiveRoom
     * @param {$protobuf.IConversionOptions} [options] Conversion options
     * @returns {Object.<string,*>} Plain object
     */
    s2c_ActiveRoom.toObject = function toObject(message, options) {
        if (!options)
            options = {};
        var object = {};
        if (options.defaults) {
            object.base = null;
            object.roomInfo = null;
        }
        if (message.base != null && message.hasOwnProperty("base"))
            object.base = $root.s2c_base.toObject(message.base, options);
        if (message.roomInfo != null && message.hasOwnProperty("roomInfo"))
            object.roomInfo = $root.room_info.toObject(message.roomInfo, options);
        return object;
    };

    /**
     * Converts this s2c_ActiveRoom to JSON.
     * @function toJSON
     * @memberof s2c_ActiveRoom
     * @instance
     * @returns {Object.<string,*>} JSON object
     */
    s2c_ActiveRoom.prototype.toJSON = function toJSON() {
        return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
    };

    /**
     * Gets the default type url for s2c_ActiveRoom
     * @function getTypeUrl
     * @memberof s2c_ActiveRoom
     * @static
     * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
     * @returns {string} The default type url
     */
    s2c_ActiveRoom.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
        if (typeUrlPrefix === undefined) {
            typeUrlPrefix = "type.googleapis.com";
        }
        return typeUrlPrefix + "/s2c_ActiveRoom";
    };

    return s2c_ActiveRoom;
})();

module.exports = $root;
